private void CreatItem(int x, int y, TimeSpan item)
        {
            int resultX;
            int resultY;

            resultX = positioningLabel[x].Location.X;
            resultY = positioningLabel[x].Location.Y + COLUMN_SPAN_FIRST + y * COLUMN_SPAN;


            if (item.GetType() == typeof(TimeSpan_Title))
            {
                //创建title
                if (!table_current.ContainsKey(new Point(x, y)))
                {
                    TimeSpan_Title tmp    = (TimeSpan_Title)item;
                    Label          newLbl = new Label()
                    {
                        Font      = new Font(new FontFamily("微软雅黑"), (float)10.28571),
                        Location  = new Point(resultX, resultY),
                        AutoSize  = false,
                        Size      = new Size(123, 78),
                        TextAlign = ContentAlignment.MiddleCenter
                    };
                    newLbl.Text = tmp.Outline + "\n" + tmp.StartTime.ToString("t") + "-" + tmp.EndTime.ToString("t");
                    TableItem_Title newTT = new TableItem_Title(newLbl, (TimeSpan_Title)item, new Point(x, y));
                    newTT.LabelClickedEvent += ProgramData.Form_TableEdit.TableItem_Clicked;
                    table_current.Add(new Point(x, y), newTT);
                    panel.Controls.Add(newLbl);
                }
            }
            else
            {
                //创建context
                if (table_current.ContainsKey(new Point(x, y)))
                {
                    //已存在时,仅绘制信息
                    TableItem_Context ttmp = (TableItem_Context)table_current[new Point(x, y)];
                    ttmp.UpdateLableText();
                }
                else
                {
                    //不存在时,创建

                    Label newLbl = new Label()
                    {
                        Font      = new Font(new FontFamily("微软雅黑"), (float)10.28571),
                        Location  = new Point(resultX, resultY),
                        AutoSize  = false,
                        Size      = new Size(123, 78),
                        TextAlign = ContentAlignment.MiddleCenter
                    };
                    TableItem_Context newTC = new TableItem_Context(newLbl, new TimeSpan_Context[] { (TimeSpan_Context)item }, new Point(x, y));
                    newTC.LabelClickedEvent += ProgramData.Form_TableEdit.TableItem_Clicked;
                    table_current.Add(new Point(x, y), newTC);
                    newTC.UpdateLableText();
                    panel.Controls.Add(newLbl);
                    createdLabel.Add(newLbl);
                }
            }
        }
Пример #2
0
        private void btn_ok_Click(object sender, EventArgs e)
        {
            Action <string> Dofail = (error) =>
            {
                ProgramData.Table_List[0] = new Table("默认表", int.Parse(txt_maxiWeek.Text));
                MessageBox.Show(error);
            };

            System.Globalization.DateTimeFormatInfo dfi = new System.Globalization.DateTimeFormatInfo();
            dfi.ShortDatePattern = "HH:mm:ss";
            DateTime startTime   = new DateTime();
            DateTime endTime     = new DateTime();
            string   describsion = "";

            foreach (var item in groupBox1.Controls.OfType <GroupBox>())
            {
                try
                {
                    foreach (var _item in item.Controls.OfType <MaskedTextBox>())
                    {
                        if (item.ForeColor == Color.Red)
                        {
                            Dofail("提交失败:时间格式错误");
                            return;
                        }

                        if (_item.Tag.ToString().Substring(1, 1) == "s")
                        {
                            startTime = Convert.ToDateTime(_item.Text, dfi);
                        }
                        else
                        {
                            endTime = Convert.ToDateTime(_item.Text, dfi);
                        }
                    }
                    foreach (var _item in item.Controls.OfType <TextBox>())
                    {
                        describsion = _item.Text;
                    }
                    if (!ProgramData.Table_List[0].AddTimeSpan_Title(startTime, endTime, describsion))
                    {
                        Dofail("提交失败:时间格式错误\n" + "请检查第" + item.Text + "项");
                        return;
                    }

                    if (!TimeSpan_Title.CheckVaild(ProgramData.Table_List[0].GetTitileList(), out string error))
                    {
                        Dofail("提交失败:存在冲突的时间\n" + error);
                        return;
                    }
                }
                catch (Exception) {}
            }
            Hide();

            XMLManager x = new XMLManager(ProgramData.Table_List[0].TableName);

            x.WriteXmlBniary(ProgramData.Table_List[0]);
            ProgramData.Form_TableEdit.Show();
        }
        private void btn_ok_Click(object sender, EventArgs e)
        {
            Action <string> Dofail = (error) =>
            {
                ProgramData.Table_List[0] = new Table("默认表", int.Parse(txt_maxiWeek.Text));
                MessageBox.Show(error);
                return;
            };

            foreach (var item in groupBox1.Controls.OfType <MaskedTextBox>())
            {
                System.Globalization.DateTimeFormatInfo dfi = new System.Globalization.DateTimeFormatInfo();
                dfi.ShortDatePattern = "HH:mm:ss";
                try
                {
                    if (item.ForeColor == Color.Red)
                    {
                        Dofail("提交失败:时间格式错误");
                        return;
                    }
                    DateTime startTime = Convert.ToDateTime(item.Text, dfi);
                    DateTime endTime   = startTime.AddMinutes(int.Parse(txt_class_length.Text));
                    ProgramData.Table_List[0].AddTimeSpan_Title(startTime, endTime, "第" + item.Tag + "节课");

                    if (!TimeSpan_Title.CheckVaild(ProgramData.Table_List[0].GetTitileList(), out string error))
                    {
                        Dofail("提交失败:存在冲突的时间\n" + error);
                        return;
                    }
                }
                catch (Exception) {}
            }
            Hide();

            XMLManager x = new XMLManager(ProgramData.Table_List[0].TableName);

            x.WriteXmlBniary(ProgramData.Table_List[0]);

            ProgramData.Form_TableEdit.Show();
        }
        public void CreatTable(Table table_data, int currentWeek)
        {
            ClearTable();
            int x = 0;
            int y = 0;

            positioningLabel[0].Text = table_data.TableName;
            List <TimeSpan_Title> timeSpan_list_sorted = TimeSpan_Title.Sort(table_data.GetTitileList());

            foreach (var item in timeSpan_list_sorted)
            {
                //CreatItem(x, y++, item);
                foreach (var item2 in item.Context)
                {
                    if (item2.IsInThisWeek(currentWeek))
                    {
                        foreach (var day in item2.InDays)
                        {
                            if (day != 0)
                            {
                                CreatItem(day, y, item2);
                            }
                        }
                    }
                }
                CreatItem(x, y++, item);
            }
            //填补空位
            for (x = 1; x <= 7; x++)
            {
                for (y = 0; y < timeSpan_list_sorted.Count; y++)
                {
                    CreatEmptyItem(x, y);
                }
            }
        }
Пример #5
0
 public TableItem_Title(Label label, TimeSpan_Title timeSpan_Title, Point location) : base(label, location)
 {
     this.TimeSpan_Title = timeSpan_Title;
     Label.Click        += OnClicked;
 }