Обычно вы должны обрабатывать событие Validating
элемента управления, если хотите проверить его содержимое. Таким образом, вы можете предотвратить смещение фокуса от элемента управления до тех пор, пока он не введет действительные данные. В вашем случае:
Private Sub NameSearchTB_Validating(sender As Object, e As CancelEventArgs) Handles NameSearchTB.Validating
If String.IsNullOrWhiteSpace(NameSearchTB.Text) Then
MessageBox.Show("Please enter a name to search for",
"Movie Store",
MessageBoxButtons.OK,
MessageBoxIcon.Information)
e.Cancel = True
End If
End Sub
Когда приходит время использовать данные, вы знаете, что каждый элемент управления, который получил фокус, должен быть действительным. Чтобы проверить тех, кто не получил фокус, вы вызываете метод ValidateChildren
формы. Он будет вызывать событие Validating
для каждого элемента управления, и, таким образом, будут проверяться все элементы управления, включая те, которые не получили фокус. ValidateChildren
возвращает False
, если какое-либо событие Validating
было отменено, и True
в противном случае, указывая, безопасно ли go опережать и использовать данные.
If ValidateChildren() Then
'All data is valid so use it safely here.
End If
Нет необходимости отображать сообщение об ошибке, потому что обработчики событий Validating
позаботятся об этом.