В VB.NET у меня есть Combobox в форме WinForm. Форма позволяет пользователю вводить запрос для поиска. Когда пользователь нажимает клавишу Enter, выполняется запрос к базе данных, и результаты возвращаются в виде DataTable. Затем DataTable привязан к Combobox, и пользователь может выбрать тот вариант, который они ищут.Combobox KeyDown обработчик события, срабатывающий несколько раз
По большей части, это отлично работает. Однако мы обнаружили, что код выполняется несколько раз. Если я напишу свой запрос и нажму клавишу Enter, я могу пройти через код TWO или THREE раз. Я не хочу отправлять один и тот же запрос в базу данных несколько раз, если мне это не нужно. Любые идеи или предложения, почему код будет выполняться несколько раз?
Вот код, о котором идет речь. Названия Combobox и Function были изменены для защиты невинных. :)
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
У вас нет другого обработчика событий, определенного где-то еще? Что-то вроде AddHandler cbx.KeyDown, AddressOf Me.cbx_KeyDown – JamesSugrue
У меня была такая же проблема с событием keydown для формы. Спасибо за решение! – Jeff
За исключением того, что это событие формы, фокусное решение не работает. :-( – Jeff