Получить код символа ASCII из KeyDown в Visual Basic .NET

Я пытался сделать программу Visual Basic .NET, которая показывает, когда клавиша нажата, MsgBox с кодом нажатой клавиши: проблема в том, что программа читает строчную букву (например, «а») как то же, что и соответствующая заглавная буква (например, «А»).

Это код в VB .NET, Framework 4.6.1:

Public Class Form1
    Dim character As String
    Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
        MsgBox(e.KeyCode, MsgBoxStyle.Information)
    End Sub
End Class

Как я могу прочитать строчную букву и соответствующую прописную букву в двух разных числах?


person Matteo Figini    schedule 02.05.2018    source источник
comment
это довольно сложно, так как зависит от состояния клавиш-модификаторов и от того, какая раскладка клавиатуры активна. Вместо этого используйте правильное событие, это KeyPress.   -  person Hans Passant    schedule 02.05.2018


Ответы (1)


Чтобы проиллюстрировать комментарий Ганса:

Private Sub TextBox1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    Dim msg As String = String.Format("You pressed: {0}", e.KeyChar.ToString)
    MessageBox.Show(msg)
End Sub
person Robert    schedule 03.05.2018