Учитывая, что свойство SelectedIndex
принадлежит элементу управления редактированием (которое активно только тогда, когда DataGridView
находится в режиме редактирования), вы можете прикрепить обработчик событий к EditingControlShowing
следующим образом:
void dataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) {
if (e.Control is ComboBox) {
// remove handler first to avoid attaching twice
((ComboBox)e.Control).SelectedIndexChanged -= MyEventHandler;
((ComboBox)e.Control).SelectedIndexChanged += MyEventHandler;
}
}
Обратите внимание, что фактический тип элемента управления - DataGridViewComboBoxEditingControl
, что расширяет ComboBox
. Вам нужна только функциональность из базового класса, плюс меньше набирать.