private void btnAddTalk_Click(object sender, EventArgs e) { SupportNoteDialog sd = new SupportNoteDialog(this, false); if (sd.ShowDialog() == DialogResult.OK) { this.GetNote(0, sd.note.date, sd.note.start_time, sd.note.end_time); } }
private void AddEventHandler() { #region Draw red line for current row & enable/disable toolstrip button this.dgvNote.Paint += delegate { if (this.dgvNote.Rows.Count > 0) { this.toolStripPrint.Enabled = (this.form_mode == FORM_MODE.READ ? true : false); this.toolStripExport.Enabled = (this.form_mode == FORM_MODE.READ ? true : false); this.toolStripEdit.Enabled = (this.dgvNote.Parent.Controls.Find("txt_inline_remark", true).Length > 0 ? false : true); Rectangle row_rect = this.dgvNote.GetRowDisplayRectangle(this.dgvNote.CurrentCell.RowIndex, false); using (Pen p = new Pen(Color.Red)) { this.dgvNote.CreateGraphics().DrawLine(p, row_rect.X, row_rect.Y, row_rect.X + row_rect.Width, row_rect.Y); this.dgvNote.CreateGraphics().DrawLine(p, row_rect.X, row_rect.Y + row_rect.Height - 1, row_rect.X + row_rect.Width, row_rect.Y + row_rect.Height - 1); } } else { this.toolStripPrint.Enabled = false; this.toolStripExport.Enabled = false; this.toolStripEdit.Enabled = false; } }; #endregion Draw red line for current row & enable/disable toolstrip button this.dgvNote.RowPostPaint += delegate(object sender, DataGridViewRowPostPaintEventArgs e) { this.SetRowBackground(((DataGridView)sender).Rows[e.RowIndex]); }; this.dgvNote.CellPainting += delegate(object sender, DataGridViewCellPaintingEventArgs e) { if (e.RowIndex == -1) { e.PaintBackground(e.CellBounds, true); e.PaintContent(e.CellBounds); if (e.ColumnIndex >= 11 && e.ColumnIndex <= 26) { RectangleF summary_bound = new RectangleF(e.CellBounds.X + 1, (e.CellBounds.Y + e.CellBounds.Height) - 18, e.CellBounds.Width - 2, 17); using (SolidBrush brush_bg = new SolidBrush(Color.LightGray)) { e.Graphics.FillRectangle(brush_bg, summary_bound); } using (Pen p = new Pen(Color.Gray)) { e.Graphics.DrawLine(p, summary_bound.X, summary_bound.Y, summary_bound.X + summary_bound.Width, summary_bound.Y); } using (SolidBrush brush = new SolidBrush(Color.Blue)) { using (Font font = new Font("tahoma", 7f)) { using (StringFormat format = new StringFormat() { Alignment = StringAlignment.Far, LineAlignment = StringAlignment.Center, FormatFlags = StringFormatFlags.LineLimit | StringFormatFlags.NoWrap }) { if (e.ColumnIndex == 11) // map drive { int sum = this.note_list.Where(r => r.map_drive.Length > 0).Count<Note>(); e.Graphics.DrawString(sum.ToString(), font, brush, summary_bound, format); } if (e.ColumnIndex == 12) // install update { int sum = this.note_list.Where(r => r.install.Length > 0).Count<Note>(); e.Graphics.DrawString(sum.ToString(), font, brush, summary_bound, format); } if (e.ColumnIndex == 13) // Error { int sum = this.note_list.Where(r => r.error.Length > 0).Count<Note>(); e.Graphics.DrawString(sum.ToString(), font, brush, summary_bound, format); } if (e.ColumnIndex == 14) // install fonts { int sum = this.note_list.Where(r => r.fonts.Length > 0).Count<Note>(); e.Graphics.DrawString(sum.ToString(), font, brush, summary_bound, format); } if (e.ColumnIndex == 15) // print { int sum = this.note_list.Where(r => r.print.Length > 0).Count<Note>(); e.Graphics.DrawString(sum.ToString(), font, brush, summary_bound, format); } if (e.ColumnIndex == 16) // อบรม { int sum = this.note_list.Where(r => r.training.Length > 0).Count<Note>(); e.Graphics.DrawString(sum.ToString(), font, brush, summary_bound, format); } if (e.ColumnIndex == 17) // สินค้า { int sum = this.note_list.Where(r => r.stock.Length > 0).Count<Note>(); e.Graphics.DrawString(sum.ToString(), font, brush, summary_bound, format); } if (e.ColumnIndex == 18) // form,report { int sum = this.note_list.Where(r => r.form.Length > 0).Count<Note>(); e.Graphics.DrawString(sum.ToString(), font, brush, summary_bound, format); } if (e.ColumnIndex == 19) // report->excel { int sum = this.note_list.Where(r => r.rep_excel.Length > 0).Count<Note>(); e.Graphics.DrawString(sum.ToString(), font, brush, summary_bound, format); } if (e.ColumnIndex == 20) // สร้างงบ { int sum = this.note_list.Where(r => r.statement.Length > 0).Count<Note>(); e.Graphics.DrawString(sum.ToString(), font, brush, summary_bound, format); } if (e.ColumnIndex == 21) // ทรัพย์สิน/ค่าเสื่อม { int sum = this.note_list.Where(r => r.asset.Length > 0).Count<Note>(); e.Graphics.DrawString(sum.ToString(), font, brush, summary_bound, format); } if (e.ColumnIndex == 22) // secure { int sum = this.note_list.Where(r => r.secure.Length > 0).Count<Note>(); e.Graphics.DrawString(sum.ToString(), font, brush, summary_bound, format); } if (e.ColumnIndex == 23) // year end { int sum = this.note_list.Where(r => r.year_end.Length > 0).Count<Note>(); e.Graphics.DrawString(sum.ToString(), font, brush, summary_bound, format); } if (e.ColumnIndex == 24) // วันที่ไม่อยู่ในงวด { int sum = this.note_list.Where(r => r.period.Length > 0).Count<Note>(); e.Graphics.DrawString(sum.ToString(), font, brush, summary_bound, format); } if (e.ColumnIndex == 25) // Mail,รอสาย { int sum = this.note_list.Where(r => r.mail_wait.Length > 0).Count<Note>(); e.Graphics.DrawString(sum.ToString(), font, brush, summary_bound, format); } if (e.ColumnIndex == 26) // โอนฝ่ายขาย { int sum = this.note_list.Where(r => r.transfer_mkt.Length > 0).Count<Note>(); e.Graphics.DrawString(sum.ToString(), font, brush, summary_bound, format); } } } } } e.Handled = true; } }; #region Adjust Inline Form Control position while datagridview is resized this.dgvNote.Resize += delegate { this.AdjustInlineFormPositon(); }; #endregion Adjust Inline Form Control position while datagridview is resized #region Show Inline Form When Double-click cell this.dgvNote.CellDoubleClick += delegate(object sender, DataGridViewCellEventArgs e) { if (this.dgvNote.CurrentCell != null) { if (e.RowIndex > -1) { this.toolStripEdit.PerformClick(); } } }; #endregion Show Inline Form When Double-click cell #region Re-order datagridview by click column header //this.dgvNote.ColumnHeaderMouseClick += delegate(object sender, DataGridViewCellMouseEventArgs e) //{ // if (e.ColumnIndex == 3) // { // this.sorted_column = 3; // this.FillDataGrid(); // } // if (e.ColumnIndex == 6) // { // this.sorted_column = 6; // this.FillDataGrid(); // } //}; this.dgvNote.ColumnHeaderMouseClick += delegate(object sender, DataGridViewCellMouseEventArgs e) { if (e.RowIndex == -1 && e.Button == MouseButtons.Left) { if (e.ColumnIndex == 5) { this.sorted_column = 5; this.FillDataGrid(); this.dgvNote.Columns[5].HeaderCell.Style.BackColor = ColorResource.COLUMN_HEADER_ACTIVE_BROWN; this.dgvNote.Columns[8].HeaderCell.Style.BackColor = ColorResource.COLUMN_HEADER_BROWN; } if (e.ColumnIndex == 8) { //this.dgvNote.Rows.Cast<DataGridViewRow>().OrderBy(r => ((SupportNote)r.Cells[0].Value).duration); this.sorted_column = 8; this.FillDataGrid(); this.dgvNote.Columns[8].HeaderCell.Style.BackColor = ColorResource.COLUMN_HEADER_ACTIVE_BROWN; this.dgvNote.Columns[5].HeaderCell.Style.BackColor = ColorResource.COLUMN_HEADER_BROWN; } } }; #endregion Re-order datagridview by click column header #region DgvNote context menu this.dgvNote.MouseClick += delegate(object sender, MouseEventArgs e) { int row_index = this.dgvNote.HitTest(e.X, e.Y).RowIndex; int col_index = this.dgvNote.HitTest(e.X, e.Y).ColumnIndex; if (row_index == -1) return; if (!(this.dgvNote.Rows[row_index].Cells[0].Value is SupportNote)) return; this.dgvNote.Rows[row_index].Cells[col_index].Selected = true; if (e.Button == MouseButtons.Right) { ContextMenu mnu = new ContextMenu(); MenuItem add_talk = new MenuItem("บันทึกสายสนทนา"); add_talk.Click += delegate { SupportNoteDialog sd = new SupportNoteDialog(this, false); if (sd.ShowDialog() == DialogResult.OK) { this.GetNote(0, sd.note.date, sd.note.start_time, sd.note.end_time); } }; MenuItem add_break = new MenuItem("พักสาย"); add_break.Click += delegate { SupportNoteDialog sd = new SupportNoteDialog(this, true); if (sd.ShowDialog() == DialogResult.OK) { this.GetNote(0, sd.note.date, sd.note.start_time, sd.note.end_time); } }; MenuItem m_add = new MenuItem("เพิ่ม...", new MenuItem[]{ add_talk, add_break }); mnu.MenuItems.Add(m_add); MenuItem m_remark = new MenuItem("แก้ไข"); m_remark.Click += delegate { this.toolStripEdit.PerformClick(); }; mnu.MenuItems.Add(m_remark); MenuItem m_comment = new MenuItem("Comment/Complain"); m_comment.Click += delegate { this.ShowCommentForm(); }; mnu.MenuItems.Add(m_comment); mnu.Show(this.dgvNote, new Point(e.X, e.Y)); } }; #endregion DgvNote context menu #region chApplyCondition CheckState Change this.chApplyCondition.CheckStateChanged += delegate { if (this.chApplyCondition.CheckState == CheckState.Unchecked) { this.txtSernum.Read_Only = true; this.chComment.Enabled = false; this.cbProblem.Enabled = false; this.cbReason.Enabled = false; this.btnAddProblem.Enabled = false; this.btnAddAllProblem.Enabled = false; this.btnRemoveAllProblem.Enabled = false; this.dgvProblem.Enabled = false; this.btnAddReason.Enabled = false; this.btnAddAllReason.Enabled = false; this.btnRemoveAllReason.Enabled = false; this.dgvReason.Enabled = false; } else { this.txtSernum.Read_Only = false; this.chComment.Enabled = true; this.cbProblem.Enabled = true; this.cbReason.Enabled = true; this.btnAddProblem.Enabled = true; this.btnAddAllProblem.Enabled = true; this.btnRemoveAllProblem.Enabled = true; this.dgvProblem.Enabled = true; this.btnAddReason.Enabled = true; this.btnAddAllReason.Enabled = true; this.btnRemoveAllReason.Enabled = true; this.dgvReason.Enabled = true; } this.FillDataGrid(); }; #endregion chApplyCondition CheckState Change #region Trigger by condition control this.txtSernum.textBox1.TextChanged += delegate { this.FillDataGrid(); this.txtSernum.textBox1.Focus(); this.txtSernum.SelectionStart = this.txtSernum.Texts.Length; }; this.chComment.CheckStateChanged += delegate { this.FillDataGrid(); }; this.btnAddProblem.Click += delegate { if (this.cbProblem.SelectedItem == null) return; this.AddProblemCondition((ComboboxItem)this.cbProblem.SelectedItem); this.FillDataGrid(); }; this.btnAddReason.Click += delegate { if (this.cbReason.SelectedItem == null) return; this.AddReasonCondition((ComboboxItem)this.cbReason.SelectedItem); this.FillDataGrid(); }; this.btnAddAllProblem.Click += delegate { for (int i = this.list_problem_all.Count - 1; i >= 0; i--) { this.AddProblemCondition(this.list_problem_all[i]); } this.FillDataGrid(); }; this.btnAddAllReason.Click += delegate { for (int i = this.list_reason_all.Count - 1; i >= 0; i--) { this.AddReasonCondition(this.list_reason_all[i]); } this.FillDataGrid(); }; this.btnRemoveAllProblem.Click += delegate { for (int i = this.dgvProblem.Rows.Count - 1; i >= 0; i--) { this.RemoveProblemCondition((ComboboxItem)this.dgvProblem.Rows[i].Tag); } this.FillDataGrid(); }; this.btnRemoveAllReason.Click += delegate { for (int i = this.dgvReason.Rows.Count - 1; i >= 0; i--) { this.RemoveReasonCondition((ComboboxItem)this.dgvReason.Rows[i].Tag); } this.FillDataGrid(); }; this.dgvProblem.CellMouseClick += delegate(object sender, DataGridViewCellMouseEventArgs e) { if (e.RowIndex < 0) return; if (e.ColumnIndex != 1) return; if (this.dgvProblem.Rows[e.RowIndex].Tag is ComboboxItem) { this.RemoveProblemCondition((ComboboxItem)this.dgvProblem.Rows[e.RowIndex].Tag); } this.FillDataGrid(); }; this.dgvReason.CellMouseClick += delegate(object sender, DataGridViewCellMouseEventArgs e) { if (e.RowIndex < 0) return; if (e.ColumnIndex != 1) return; if (this.dgvReason.Rows[e.RowIndex].Tag is ComboboxItem) { this.RemoveReasonCondition((ComboboxItem)this.dgvReason.Rows[e.RowIndex].Tag); } this.FillDataGrid(); }; #endregion Trigger by condition control }