:: Не фоксом единым
Winforms textbox validating
AlexSSS
Автор

Сообщений: 6113
Откуда: Tallinn, Estonia
Дата регистрации: 19.09.2005
Winforms
Не могу разобраться с простейшей вроде вещью - проверкой значения текстбокса при выходе с него.
CausesValidation = true;
Но Textbox_Validating срабатывает не при выходе с текстобокса, а при получении фокуса на НЕКОТОРЫХ других контролах.
Как сделать, чтобы validating срабатывал сразу при переходе на ЛЮБОЙ другой контрол?

ps. Form.AutoValidate = AutoValidate.EnablePreventFocusChange;



Исправлено 3 раз(а). Последнее : AlexSSS, 29.06.21 11:03
Ratings: 0 negative/0 positive
Re: Winforms textbox validating
AlexSSS
Автор

Сообщений: 6113
Откуда: Tallinn, Estonia
Дата регистрации: 19.09.2005
Сама задача простая - в текстбокс вводится персональный код. Надо проверить его контрольную сумму и если она не правильная, выдать сообщение об ошибке и остаться в этом текстбоксе
Ratings: 0 negative/0 positive
Re: Winforms textbox validating
S-type

Сообщений: 2969
Дата регистрации: 24.04.2004
А если пользователь мышью указал другое поле - надо проверять и возвращаться в тот текстбокс? А если пользователь мышью нажал кнопку, закрывающую окно - надо проверять?
Ratings: 0 negative/0 positive
Re: Winforms textbox validating
AlexSSS
Автор

Сообщений: 6113
Откуда: Tallinn, Estonia
Дата регистрации: 19.09.2005
надо проверять в любом случае. Исключение - ESC, но его я смогу проверить в проверке
Ratings: 0 negative/0 positive
Re: Winforms textbox validating
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
AlexSSS
Winforms

Не знаком, к сожалению, со спецификой данного средства разработки, поэтому, в порядке бреда, чисто по аналогии с чем-то другим - иногда отсутствие какого-то свойства или метода контроля у объекта удается компенсировать наличием оного у контейнера, куда данный объект(ы) можно поместить. Т.е. использовать контейнеры для упрощения проверок. Может и здесь наличествует какая-то подобная возможность?


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Winforms textbox validating
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
CausesValidation служит для обратной цели - пометить те контролы, переход фокуса на который НЕ должен приводить к валидации. Например кнопка безусловного выхода/закрытия, или кнопка "помощь". По умолчанию все контролы имеют CausesValidation = true и значит переход фокуса на них с твоего текстбокса будет вызывать срабатывание его событий Validating и Validated.

А вообще без примера демонстрируюшего неправильное поведение и описания правильного сложно что-то сказать. Может быть ты путаешь события типа клик или маусдаун с переходом фокуса (и ожидаешь что эти клики не будут срабатывать а валидация будет). Может ты наоборот повыставлял у кучи контролов CausesValidation = false и переход фокуса на них таки не вызывает валидацию...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Winforms textbox validating
S-type

Сообщений: 2969
Дата регистрации: 24.04.2004
Поддерживаю предыдущего оратора. Не понятно - в чём именно затык. Пример, пожалуйста, в студию.

Опять таки, принципиально именно при покидании textbox-а проверять условие (и не давать выйти из поля)? Может, перенести проверку на кнопку Ok (или сохранить)? Или, например - сделать так. Проверяется контрольная сумма. Если она не корректна, фон поля делается красным, а кнопка "Ok" не доступна. Если контрольная сумма корректна, фон поля делается нормальным и кнопка "Ok" доступна. И, фиг с ним - что пользователь к другому полю перешёл.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 3 (Гостей: 3)

© 2000-2024 Fox Club 
Яндекс.Метрика