Обнаружение множественного нажатия клавиш в событии KeyPress

Я использую Visual Studio 2013 и пишу в VB.NET. Я создаю проект для стажировки в школе. Прямо сейчас в одной из моих форм у меня есть это, где вы должны ввести свое имя. Вот некоторая уместная информация.

Для TextBox у меня есть свойство ShortcutsEnabled = False так что пользователь не может скопировать и вставить в текстовое поле, если это моя проблема, то мне просто придется обойтись без нее. Теперь я сделал это так, чтобы моя проверка ошибок Sub была проще и более сжатой, чтобы мне не пришлось проверять IsNumeric. Причина, по которой мне не нужно было проверять, заключается в том, что в событии KEYPRESS (не keydown) в текстовых полях оно ограничивает входные данные.

 Private Sub Nametxt_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Nametxt.KeyPress

    Dim AllowedChars As String = "abcdefghijklmnopqrstuvwxyz" 'The characters that you are allowed to enter

    If e.KeyChar <> ControlChars.Back And _
       ModifierKeys <> Keys.Shift _
       And e.KeyChar <> Chr(32) Then

        'e.KeyChar <> ControlChars.Back allows the user to use the backspac
        'ModifierKeys <> Keys.Shift allows the user to use the shift key so they can enter Capital letters
        'e.KeyChar <> Chr(32) allows the user to use the space bar so they can enter their First and Last name.

        If AllowedChars.IndexOf(e.KeyChar) = -1 Then
            e.Handled = True

        End If

Теперь я пытаюсь позволить пользователю также нажать "Ctrl+A", чтобы он мог выделить весь текст в поле для удобства. Помните, что у меня есть свойство текстовых полей ShortcutsEnabled = False

Это не сработало:

If e.KeyChar <> ControlChars.Back And _
   ModifierKeys <> Keys.Shift And _
   e.KeyChar <> Chr(32) And _

Новая строка -> (e.KeyChar <> Chr(61) AndAlso ModifierKeys <> Keys.Control) затем

End If

Примечание: поскольку я использую событие KEYPRESS, а не событие keydown, единственным e.key жизнеспособный код e.keychar ||||| e.keycode а также e.keyvalue непригодны в этом обработчике событий

0 ответов

Другие вопросы по тегам