Private Sub AccountType_KeyDOWN(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode = Keys.Return Then
ProcessTabKey(True)
End If
End Sub
Private Sub anytextbox_Enter(sender As Object, e As EventArgs) Handles Twitter.Enter, Email.Enter, PhoneNoOffice.Enter, PhoneNoHome.Enter, PhoneNoMobile.Enter, EName.Enter, AName.Enter, IDCode.Enter, ExpiryDate.Enter, BankAccount.Enter
Dim txt As TextBox = DirectCast(sender, TextBox)
stroldvalue = txt.Text
End Sub
Private Sub anytextbox_KeyDown(sender As Object, e As KeyEventArgs) Handles Twitter.KeyDown, Email.KeyDown, PhoneNoOffice.KeyDown, PhoneNoHome.KeyDown, PhoneNoMobile.KeyDown, EName.KeyDown, AName.KeyDown, IDCode.KeyDown, ExpiryDate.KeyDown, BankAccount.KeyDown
Dim txt As TextBox = DirectCast(sender, TextBox)
If e.KeyCode = Keys.Enter Or e.KeyCode = Keys.Tab Then
If txt.Text <> stroldvalue Then
connectunauth()
cmd = New SqlCommand("Insert into changes values(@id,@txtname,@oldval,@newval)", Variables.UnauthCon)
cmd.Parameters.AddWithValue("@id", CustomerNo.Text)
cmd.Parameters.AddWithValue("@txtname", txt.Name)
cmd.Parameters.AddWithValue("@oldval", stroldvalue)
cmd.Parameters.AddWithValue("@newval", txt.Text)
cmd.ExecuteNonQuery()
UnauthCon.Dispose()
NOCHANGE = True
End If
End If
End Sub
上記のコードでは、次のエラーに直面しています: 1 つのテキスト ボックスに入力すると、値が stroldvalue に保存されます。上記の変更後に Enter キーを押すと、form_keydown イベントが最初にトリガーされ、anytextbox_enter イベントが実行され、stroldvalue が次のテキスト ボックス値によって上書きされます。次に、テキストボックスのキーダウンイベントがトリガーされます。
フォームのキープレスイベントを試しましたが、キープレスイベントはコンボボックスでのエンターキーの押下をキャプチャしません。テキストボックスのキーダウンイベントの後にフォームのキーダウンがトリガーされるようにするにはどうすればよいですか。