Правильный способ справиться с этим - использовать событие Validating
для TextBox
. Вы обрабатываете событие, и в нем вы проверяете данные и устанавливаете e.Cancel
в True
, если оно терпит неудачу. Это предотвратит потерю фокуса поля до ввода правильных данных. Затем вы можете вызвать ValidateChildren
в вашем Button.Click
обработчике событий, чтобы принудительно проверить все элементы управления, даже если они не получили фокус. Он вернет Boolean
, который указывает, все ли дети прошли проверку или нет.
Private Sub TextBox1_Validating(sender As Object, e As CancelEventArgs) Handles TextBox1.Validating
If TextBox1.Text.Trim() = String.Empty Then
MessageBox.Show("Please enter some text")
e.Cancel = True
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If ValidateChildren() Then
'All data is valid so proceed to use it.
Dim str = TextBox1.Text
'...
End If
End Sub