Ячейка DataGridView не вызывает CellEndEdit, пока не будет выбрана новая ячейка - PullRequest
1 голос
/ 28 июня 2011

Я создаю DataGridView, который отображает столбец значений bool. Я использую визуальный конструктор в Visual Studio для создания winforms и добавил столбец, у которого его «ColumnType» установлен в «DataGridViewCheckBoxColumn», чтобы вместо текстовых полей появлялись флажки.

Я также делаю следующее:

ElementDataGrid.CellEndEdit += new DataGridViewCellEventHandler(OnCellValueChanged);

Проблема, с которой я сталкиваюсь, заключается в том, что, если я установлю флажок во время выполнения, щелкнув по нему, OnCellValueChanged не поднимется (проверяется как моей программой, которая не отвечает, так и точками останова, которые не были достигнуты). Затем, как только я выбираю другую ячейку с помощью мыши, событие вызывается. Это как если бы CellEndEdit не поднимался до тех пор, пока ячейка не будет отменена.

Я бы хотел, чтобы остальная часть моего приложения немедленно ответила, как только пользователь установит флажок, и ему не нужно ждать, пока пользователь отменит его. Могу ли я использовать другое событие? Я также попробовал: * CellValidating * CellValidated * CellValueChanged Но все, кажется, работают одинаково - они требуют, чтобы пользователь выбрал другую ячейку.

1 Ответ

2 голосов
/ 28 июня 2011

попробуйте использовать
DataGridView.CurrentCellDirtyStateChanged Событие, которое происходит, когда состояние ячейки изменяется в связи с изменением ее содержимого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...