Как я могу немедленно обновить значение DataGridViewCheckBoxCell? - PullRequest
1 голос
/ 22 февраля 2011

Я использую DataGridViewCheckBoxCell в DataGridView элементе управления.Пока пользователь нажимает флажок, я проверяю определенные условия и устанавливаю для него значение false.Тем не менее, флажок остается установленным, пока пользователь не перейдет к следующей строке.Как я могу это исправить, чтобы значение обновлялось немедленно

Ответы [ 3 ]

1 голос
/ 08 июля 2011

Используйте исправление в принятом ответе на вопрос: DataGridView с проблемой ячейки CheckBox

0 голосов
/ 08 июля 2011

Да ... не то, чтобы вы, вероятно, заботились об этом, но я недавно столкнулся с тем, что, как я полагаю, является той же самой проблемой: если вы щелкнули по выбранному флажку, это direct , причина его проверки или Если флажок снят, то все, что вам нужно сделать, это обработать CellDirtyStateChanged объекта DataGridView и сообщить сетке CommitEdit о себе. С другой стороны, если флажок в DataGridViewCheckBoxColumn изменяет состояние по любой другой причине, а не потому, что вы просто щелкнули по нему (например, результат использования контекстного меню для их пакетного переключения или его установки программно после проверки чего-либо) и этот флажок имеет фокус, насколько я мог сказать, не говоря уже об отмене выбора, он заставил бы его перерисовать себя с правильной проверкой.

К сожалению, я не нашел способа обойти это, поэтому я обманул: после кода, ответственного за программное переключение флажка ячейки, если IsCurrentCellInEditMode сетки был истинным, а столбец CurrentCell был столбцом флажка, я просто переместил столбец CurrentCell снова и снова. Не самое симпатичное решение, но мне надоело бороться с этим контролем, и он работал без каких-либо явных мерцаний или чего-то такого, так что ... достаточно хорошо.

Конечно, если вы просто проверяете одну ячейку, по которой щелкнули, вероятно, есть более простые способы, включая проверку самого значения, а не обработку проверки в событии click и принудительное изменение измененного значения самостоятельно.

0 голосов
/ 23 июня 2011

Сначала зафиксируйте изменения и просто измените управление на другую ячейку и вернитесь.

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