Игнорировать ввод нажатия клавиш при раскрытии с DropdownStyle = DropDownList - PullRequest
0 голосов
/ 14 января 2019

У меня есть поле со списком, в который пользователь может ввести, чтобы отфильтровать результаты.

Чтобы реализовать это, я установил dropDownStyle на DropdownList и установил событие KeyUp следующим образом

Private Sub cbRPP_KeyUp(ByVal sender As Object, ByVal e As KeyEventArgs) Handles cbRPP.KeyUp
    If boredUserProtection Then Return

    If e.KeyCode = Keys.Enter Then
        e.SuppressKeyPress = True
        e.Handled = True
        Return 'Boss doesn't want enter to do anything
    End If
    ComboKeyPressed()
End Sub


Private Sub cbRPP_SelectionChangeCommitted(sender As Object, e As EventArgs) Handles cbRPP.SelectionChangeCommitted
    If boredUserProtection Then Return 'boredUserProtection = a flag to prevent the user from typing into the box once they've entered some text
    Try
        boredUserProtection = True
        menuButton.Select()
        TooltipNotify("Loading")
        cbRPP.Text = String.Empty
        LoadRegion()
        menuButton.Select()
    Catch ex As Exception
        ErrorReporter.Program.ReportError(ex, "RPPCalibator", "Handled Gracefully")
    Finally
        boredUserProtection = False
    End Try
End Sub

Проблема в том, что теперь мой начальник попросил меня не предпринимать никаких действий при нажатии клавиши ввода.

Я пытался добиться этого, перехватывая нажатие клавиши и подавляя ввод, но кажется, что это не работает, когда dropdownStyle = dropdownList

Private Sub cbRPP_KeyPress(sender As Object, e As KeyPressEventArgs) Handles cbRPP.KeyPress
    If e.KeyChar = vbCrLf Then
        e.Handled = True
        Return 'Boss doesn't want enter to do anything
    End If
End Sub

Private Sub cbRPP_KeyDown(sender As Object, e As KeyEventArgs) Handles cbRPP.KeyDown
    If e.KeyCode = Keys.Enter Then
        e.SuppressKeyPress = True
        e.Handled = True
        Return 'Boss doesn't want enter to do anything
    End If
End Sub

Мне просто интересно, может ли кто-нибудь пролить свет на то, как я могу предотвратить любые события, происходящие при вводе keyprss, поскольку один совет, который я могу легко найти в Google (перехват KeyDown или KeyUp), похоже, не работает .

(я прагматик, поэтому любая форма решения, которую вы имеете, будет высоко оценена)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...