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); } } }
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); } } }
public TableItem_Title(Label label, TimeSpan_Title timeSpan_Title, Point location) : base(label, location) { this.TimeSpan_Title = timeSpan_Title; Label.Click += OnClicked; }