VB.NET では、WinForm フォームに Combobox があります。フォームを使用すると、ユーザーは検索するクエリを入力できます。ユーザーが Enter キーを押すと、データベースに対してクエリが実行され、結果が DataTable として返されます。DataTable は Combobox にバインドされ、ユーザーは探しているオプションを選択できます。
ほとんどの場合、これはうまく機能しています。ただし、コードが複数回実行されていることがわかりました。クエリを書き出して Enter キーを 1 回押すと、コードを 2 回または 3 回実行できます。必要がなければ、同じクエリをデータベースに複数回送信したくありません。コードが複数回実行される理由について何かアイデアや提案はありますか?
これが問題のコードです。罪のない人を保護するために、コンボボックスと関数の名前が変更されました。:)
Private Sub cbx_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles cbx.KeyDown
Me.Cursor = Cursors.IBeam
If e.KeyData = Keys.Enter Then
Me.Cursor = Cursors.WaitCursor
PerformSearch()
Me.Cursor = Cursors.Default
End If
Me.Cursor = Cursors.Default
End Sub