/// <summary>Происходит при изменении значения ячейки грида с весами /// </summary> void dgv_CellValueChanged(object sender, DataGridViewCellEventArgs e) { var dgv = sender as DataGridView; if (dgv.Columns[e.ColumnIndex].Name == "Sum") { var themeName = (dgv.Parent as TabPage).Tag.ToString(); var stem = dgv.Rows[e.RowIndex].Cells["Stem"].Value.ToString(); SetTabPageCaption(themeName, dgv.Parent as TabPage, dgv); dgv.Rows[e.RowIndex].Cells["Status"].Value = WordStatusText.GetText(_tc.GetWordStatus(themeName, stem)); } }
void dgv_MouseClick(object sender, MouseEventArgs e) { var dgv = sender as DataGridView; if (e.Button == MouseButtons.Right) // если правой кнопкой { _dgvContextClick = dgv; DataGridView.HitTestInfo hitTestInfo = dgv.HitTest(e.X, e.Y); if (hitTestInfo.Type == DataGridViewHitTestType.Cell) { var rowIdx = hitTestInfo.RowIndex; var row = dgv.Rows[rowIdx]; var wordStem = row.Cells["Stem"].Value; dgv.ClearSelection(); row.Selected = true; ContextMenuStrip cm = new ContextMenuStrip(); cm.Items.Add(WordStatusText.GetText(WordStatus.WordNotInTheme), null, DeleteWord); cm.Items.Add(WordStatusText.GetText(WordStatus.WordAreIgnored), null, IgnoreWord); cm.Items.Add(WordStatusText.GetText(WordStatus.WordInTheme), null, AddWord); cm.Items.Add(WordStatusText.GetText(WordStatus.WordInThemeLexicalized), null, LexicalizedWord); var status = _tc.GetWordStatus(CurrentTheme, CurrentWord); foreach (var item in cm.Items.Cast <ToolStripItem>()) { item.Click += OnChangeStatus; } foreach (var item in cm.Items.Cast <ToolStripItem>().Where(i => i.Text == WordStatusText.GetText(status))) { item.BackColor = Color.Aqua; } cm.Show(dgv, new Point(e.X, e.Y)); } } }
private void OnChangeStatus(object sender, EventArgs e) { var themeName = CurrentTheme; var stem = CurrentWord; _dgvContextClick.SelectedRows.Cast <DataGridViewRow>().Single().Cells["Status"].Value = WordStatusText.GetText(_tc.GetWordStatus(themeName, stem)); }