Такое дело: есть DataGridView, в нём есть столбец DataGridViewComboBoxColumn. Мне нужно, чтобы при изменении ячейки в этом столбце отрабатываолся некоторый сценарий, который смотрит, что было выбрано и принимает некоторые решения. Как я это реализую:
1: при загрузке формы
| Код | dataGridView1.EditingControlShowing += _dgv_EditingControlShowing;
|
2: реализую _dgv_EditingControlShowing
| Код | private void _dgv_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { DataGridViewComboBoxEditingControl combo =(DataGridViewComboBoxEditingControl)e.Control; combo.SelectedValueChanged += ComboBox_SelectedValueChanged; }
|
3: ComboBox_SelectedValueChanged
| Код | void ComboBox_SelectedValueChanged(object sender, EventArgs e) { MessageBox.Show("Что-то делаем"); }
|
Врезультате, при изменении значения, моя функция ComboBox_SelectedValueChanged отрабатывается несколько раз. При чём первый раз - 2 раза, потом 3 и так далее...
Понимаю, что дело в том что я назначаю нового обработчика эвента каждый раз, но как по-другому сделать? или как избавиться о этой ошибки? |