Dans VB.NET, j'ai un Combobox sur un formulaire WinForm. Le formulaire permet à l'utilisateur de saisir une requête à rechercher. Lorsque l'utilisateur appuie sur la touche Entrée, une requête est effectuée sur la base de données et les résultats sont renvoyés en tant que DataTable. Le DataTable est ensuite lié au Combobox et l'utilisateur peut sélectionner l'option recherchée.Le gestionnaire d'événements Combobox KeyDown tirant plusieurs fois
Pour la plupart, cela fonctionne très bien. Cependant, nous avons découvert que le code s'exécutait plusieurs fois. Si j'écris ma requête et appuie une fois sur la touche Entrée, je peux parcourir le code DEUX ou TROIS fois. Je ne veux pas envoyer la même requête à la base de données plusieurs fois si je n'ai pas à le faire. Des idées ou des suggestions pour lesquelles le code s'exécuterait plusieurs fois?
Voici le code en question. Les noms Combobox et Function ont été modifiés pour protéger les innocents. :)
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
Vous ne disposez pas d'un autre gestionnaire d'événements défini ailleurs? Quelque chose comme AddHandler cbx.KeyDown, AddressOf Me.cbx_KeyDown – JamesSugrue
J'ai eu le même problème avec l'événement keydown pour un formulaire. Merci pour la solution! – Jeff
Sauf qu'il s'agit d'un événement de formulaire, la solution de mise au point ne fonctionne pas. :-( – Jeff