Обязательные текстовые поля - PullRequest
4 голосов
/ 03 февраля 2009

Я связывал текстовые поля в winform с C # для набора данных. Всякий раз, когда данные не проверяются с помощью базы данных, за исключением того, что они молча заставляют фокус оставаться на текстовом поле. Как я могу уловить ошибку проверки и сообщить пользователю об этом (и освободить фокус)? Событие BindingSource OnDataError не вызывается.

Ответы [ 2 ]

2 голосов
/ 03 февраля 2009

Однажды у меня была похожая проблема. Фокус оставался в текстовом поле, которое было привязано к некоторому числовому полю базы данных, когда пользователь изменил текст в текстовом поле, а затем удалил его, чтобы свойство text было пустой строкой. Я решил это с чем-то вроде:

textbox.DataBindings["Text"].NullValue = "";

Это решило проблему пустых входов. Я не знаю, будет ли она полезна в вашем случае, но я также был бы заинтересован в более общем решении.

Вот также несколько связанных вопросов по SO:

TextBox с привязкой к данным: не удается выйти

1 голос
/ 03 февраля 2009

Никогда не полагайтесь только на то, что «Visual Studio сделала для меня», если вы не до конца понимаете, что она делает. Я настоятельно призываю вас не торопиться и выяснить, как делать то, что вы хотите делать самостоятельно (то есть без кода, сгенерированного дизайнером). Для начала, в TextBox есть несколько событий, которые могут вам помочь. Начните здесь:

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.validated.aspx

В частности, проверяющие и проверяемые события должны быть именно тем, что вы ищете.

...