Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Фильтрация необходимого события в DataGridView


Автор: JohnPreston 27.9.2011, 17:42
цепляю обработчик на событие

Код

dataGridView1.ColumnWidthChanged += new DataGridViewColumnEventHandler(UpdateDataGridView);


Но беда в том, что при заполнении таблицы событие ColumnWidthChanged срабатывает очень много раз подряд, а окна еще даже не видно на экране. Мне нужно обрабатывать это событие, когда пользователь сам изменяет ширину столбцов.
Как определить кем вызвано событие?

Код

public void UpdateDataGridView(object o,DataGridViewColumnEventArgs args){

            MessageBox.Show(o.GetType().ToString());
            ...
}


Всегда выдает DataGridView, когда пользователь расширяет столбцы и когда они автоматически расширяются при заполнении

РЕШЕНИЕ!
при автоматических вызовах события поле CurrentCell имеет значение null, несложной проверкой отфильтровали ненужные срабатывания

Код

DataGridView X = sender as DataGridView;
if (X == null)
return;
if (X.CurrentCell == null)
return;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)