Страницы: 1
RSS
Как заставить программу ждать ввода информации в TextBox, А потом продолжать свою работу
 
Есть форма, в форме несколько TextBox-ов, Пользователь вводит в них информацию в любом порядке. Если любой из них пустой, выводится сообщение о необходимости ввода в него информации. Как сделать так, чтобы программа ждала ввода пользователя, а потом продолжала свою работу?
 
Я в таких случаях на кнопку "ОК" пишу код, который проверяет, все ли поля заполнены. Если нет, то выводим сообщение и передаём фокус на незаполненный контрол и выходим из процедуры.
 
Спасибо.
А можно ли сделать это через событие?
 
Нажатие кнопки и есть событие ))
Кнопка, которая у Вас запускает некую процедуру для обработки введённых на форму данных. Можно, конечно, использовать событие выхода из контрола: если ничего не ввели - выводить сообщение. Но это не очень практично: ведь пользователь может оставить "на потом" заполнение, скажем, второго ТекстБокса, заполнив пять других. И это ведь не будет являться ошибкой.
 
Цитата
oksana2016 написал:
через событие?
Какое именно?
Вообще намного правильнее именно так, как написал Юрий. Еще один финт, который я применяю как правило на форме с MultiPage и когда нужно разрешить переход на следующую вкладку только если заполнены все необходимые данные:
-изначально кнопка "ДАЛЕЕ" или "ЗАВЕРШИТЬ" имеет свойство Enabled = False
-по событию изменения контролов идет проверка корректности заполнения. Если все верно - кнопка "ДАЛЕЕ" принимает свойство Enabled = True, что позволяет её нажать.
Но если таких вкладок нет и только кнопки ДА и ОТМЕНА - то лучше по нажатию кнопки ДА проверять корректность заполненности данных и если что-то не так - показываем сообщение и Exit Sub. Т.е. дальнейшие действия не производятся пока все данные не будут внесены корректно.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо
 
Или без кнопок, по событию изменения контролов, проверять корректность заполнения и вообще заполненность всех контролов и, в случае их правильного заполнения, сразу продолжать работу, не ожидая нажатия кнопки далее, отсутствие которой, впрочем, создаст, как мне кажется, ощущение недружественного интерфейса.
 
Цитата
VideoAlex написал:
сразу продолжать работу, не ожидая нажатия кнопки далее
Заполнив все необходимые поля, в любом случае придётся нажать на некую кнопку ) Ведь все диалоговые окна так устроены.
 
Есть у нас текстбокс. форма отслеживает изменения в нем и сравнивает его текст со значениями из какого-то списка и как только текст в текстбоксе примет любое значение из этого списка переходит к следующему этапу.
само собой не каждый список значений для этого подойдет. в списке из значений 1, 10, 11 текст в текстбоксе никогда не будет ни 10 ни 11.
Изменено: VideoAlex - 30.06.2016 11:03:49
 
Есть у нас три поля, куда нужно ввести три суммы. В произвольном порядке. Ввели. Но ведь нужно объяснить программе, что следует перейти к следующему шагу. Вот для этого в диалогах и используют кнопку, нажатие на которую означает, что идём дальше.
 
Цитата
VideoAlex написал:
примет любое значение из этого списка переходит к следующему этапу
В чем здесь моветон: пользователь может и ошибочно ввести данные и они даже могу оказаться корректными с точки зрения логики программы. Но неверными с точки зрения пользователя - ввести надо было другое :) Поэтому обычно все же кнопки(ДАЛЕЕ, НАЗАД, ГОТОВО) применяются не просто так и автоматом переходы на следующий шаг не делаются.
Хотя допускаю тот вариант, что при определенных ситуациях может быть и имеет смысл применять подобный подход. Но я пока такие ситуации не встречал :)
Изменено: The_Prist - 30.06.2016 11:34:49
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Да кто ж спорит то. Я говорю только о теоретической возможности обойтись без кнопки. В некоторых случаях, не берусь предположить в каких, отсутствие кнопки может оказаться даже оправданым
 
Сделала по итогу так: после нажатия на кнопку Сохранить, начиная с первого поля проверяется, все ли поля заполнены. Если нет, то в пустое поле ставится фокус и выводится сообщение, что поле должно быть заполнено. Если все поля заполнены, выводится сообщение, в котором в структурированном виде выводится информация, введенная пользователем. Если он подтверждает правильность данных, данные сохряняются в БД, если нет, то вводит снова.

Мне интересно было сделать так, чтобы когда после проверки находится пустое поле и в него ставится фокус, программа ждала только только три события - ввода информации в поле или нажатия на кнопки Сохранить или Отменить.
Страницы: 1
Наверх