Если в txtUserName
есть значение, а txtPassword
равно нулю или пусто, вы показываете MessageBox
. После отображения MessageBox
(независимо от выбранного пользователя) вы выбираете txtUserName
и txtPassword
. Поскольку вы можете выбрать только один TextBox
, окончательно будет выбран txtPassword
.
На Form
сначала выбирается txtUserName
, поэтому курсор переходит с txtPassword
на txtUserName
. В конце выбирается txtPassword
, поэтому курсор переходит с txtUserName
на txtPassword
.
Вы также используете .Select
в части ElseIf
. Если вы хотите установить курсор на TextBox
, вам нужно использовать .Focus
(как в части If
).
Вам нужно удалить txtUserName.Select()
на ElseIf
и использовать .Focus
вместо .Select
на txtPassword
для решения вашей проблемы:
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
If String.IsNullOrEmpty(txtUserName.Text) Then
MessageBox.Show("User Name required", "Invalid Entry", MessageBoxButtons.OK, MessageBoxIcon.Warning)
txtUserName.Focus()
Return
ElseIf String.IsNullOrEmpty(txtPassword.Text) Then
MessageBox.Show("Password required", "Invalid Entry", MessageBoxButtons.OK, MessageBoxIcon.Warning)
txtPassword.Focus()
Return
End If
'more code for database connection.
End Sub