В Winforms почему проверка не запускается после выхода из TextBox и ввода DataGridView? - PullRequest
1 голос
/ 14 октября 2011

Я переопределяю событие OnValidating в пользовательском текстовом поле Winforms.Я обнаружил, что если текстовое поле (которое привязано к объекту) имеет фокус, а затем я задаю фокус сетки с помощью мыши, событие OnValidating не всегда срабатывает.Когда я впервые задаю фокус сетки, он срабатывает нормально.Но, если поместить одну из ячеек сетки в режим редактирования (мигающий курсор), оттуда она, похоже, не будет запущена, когда я вернусь между текстовым полем и сеткой с помощью мыши.Если я изменяю фокус с помощью клавиши табуляции, проверка всегда запускается.Если я фокусируюсь на элементе управления без сетки с помощью мыши, проверка всегда запускается.

Я пытался воссоздать эту функцию с нуля в простой форме и не могу воссоздать проблему.Сетка, которую я использую в настройке, где я получаю проблему, представляет собой пользовательский DataGridView с пользовательскими типами столбцов.Мне интересно, если проблема в сетке.Но я не вижу, как это может повлиять на события текстового поля.Есть идеи?

1 Ответ

0 голосов
/ 14 октября 2011

Вероятно, это связано со свойством CausesValidation.

Проверка элемента управления подавляется, если фокус переходит к элементу управления, для которого CausesValidation имеет значение false. Это просто дикая догадка, но я думаю, что некоторый элемент управления внутри сетки имеет CausesValidation = false;

Это свойство предназначено для таких вещей, как кнопки «Отмена», но может привести к путанице.

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