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 |
Re: Winforms textbox validating | |
---|---|
AlexSSS Сообщений: 6113 Откуда: Tallinn, Estonia Дата регистрации: 19.09.2005 |
Сама задача простая - в текстбокс вводится персональный код. Надо проверить его контрольную сумму и если она не правильная, выдать сообщение об ошибке и остаться в этом текстбоксе
|
Re: Winforms textbox validating | |
---|---|
S-type Автор Сообщений: 2969 Дата регистрации: 24.04.2004 |
А если пользователь мышью указал другое поле - надо проверять и возвращаться в тот текстбокс? А если пользователь мышью нажал кнопку, закрывающую окно - надо проверять?
|
Re: Winforms textbox validating | |
---|---|
AlexSSS Сообщений: 6113 Откуда: Tallinn, Estonia Дата регистрации: 19.09.2005 |
надо проверять в любом случае. Исключение - ESC, но его я смогу проверить в проверке
|
Re: Winforms textbox validating | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Не знаком, к сожалению, со спецификой данного средства разработки, поэтому, в порядке бреда, чисто по аналогии с чем-то другим - иногда отсутствие какого-то свойства или метода контроля у объекта удается компенсировать наличием оного у контейнера, куда данный объект(ы) можно поместить. Т.е. использовать контейнеры для упрощения проверок. Может и здесь наличествует какая-то подобная возможность? ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: Winforms textbox validating | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
CausesValidation служит для обратной цели - пометить те контролы, переход фокуса на который НЕ должен приводить к валидации. Например кнопка безусловного выхода/закрытия, или кнопка "помощь". По умолчанию все контролы имеют CausesValidation = true и значит переход фокуса на них с твоего текстбокса будет вызывать срабатывание его событий Validating и Validated.
А вообще без примера демонстрируюшего неправильное поведение и описания правильного сложно что-то сказать. Может быть ты путаешь события типа клик или маусдаун с переходом фокуса (и ожидаешь что эти клики не будут срабатывать а валидация будет). Может ты наоборот повыставлял у кучи контролов CausesValidation = false и переход фокуса на них таки не вызывает валидацию... ------------------ WBR, Igor |
Re: Winforms textbox validating | |
---|---|
S-type Автор Сообщений: 2969 Дата регистрации: 24.04.2004 |
Поддерживаю предыдущего оратора. Не понятно - в чём именно затык. Пример, пожалуйста, в студию.
Опять таки, принципиально именно при покидании textbox-а проверять условие (и не давать выйти из поля)? Может, перенести проверку на кнопку Ok (или сохранить)? Или, например - сделать так. Проверяется контрольная сумма. Если она не корректна, фон поля делается красным, а кнопка "Ok" не доступна. Если контрольная сумма корректна, фон поля делается нормальным и кнопка "Ok" доступна. И, фиг с ним - что пользователь к другому полю перешёл. |
© 2000-2025 Fox Club  |