У меня есть DataGridView и обработчик события EditingControlShowing, который используется для добавления или удаления обработчиков события keyUp для некоторых столбцов. Проблема иногда в столбце, который не имеет связанного обработчика KeyUp, фактически запускает обработчик. Кажется, что сетка не знает, какой столбец должен запускать какой обработчик.
Проблема: Когда я набираю в column2 (не column1), строка, которая удаляет обработчик KeyUp, запускается ... пока все хорошо. Но тогда Control_KeyUp запускается! Control_KeyUp только для Column1.
Есть ли способ узнать, есть ли у столбца (или ячейки?) Обработчики, прикрепленные к нему?
private void MyGrid_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
string columnName = MyGrid.Columns[MyGrid.CurrentCell.ColumnIndex].Name;
if (columnName == "column1")
e.Control.KeyPress += new KeyPressEventHandler(Control_KeyUp);
else
e.Control.KeyPress -= new KeyPressEventHandler(Control_KeyUp);
......
}