Как обнаружить нажатия клавиш › и ‹ в консольном приложении .NET

Учитывая следующий код...

Dim KeyPress As ConsoleKeyInfo
Do
    KeyPress = Console.ReadKey(True)
    If KeyPress.KeyChar = Convert.ToChar(">") Then
      debug.WriteLine("Greater Than")
    End If
Loop While KeyPress.Key <> ConsoleKey.X

Я ожидаю, что нажатие клавиши «>» на моей клавиатуре вызовет отладочный вывод. Однако, когда я выполняю свой код, оператор IF оценивается как ложный при нажатии «>».

Как правильно определить нажатие клавиши «>» при использовании Console.ReadKey()?


person DWRoelands    schedule 10.09.2014    source источник
comment
Sepehr - Это было именно то, что мне было нужно. Спасибо.   -  person DWRoelands    schedule 10.09.2014
comment
Интересно, что я ожидал, что это будет помечено с помощью Option Strict On, но, похоже, это не так.   -  person Matt Wilko    schedule 10.09.2014
comment
@dwroelands: ваша проблема уже решена?   -  person Simon Farshid    schedule 10.09.2014
comment
Моя проблема исправлена, да.   -  person DWRoelands    schedule 10.09.2014


Ответы (2)


Попробуйте реальный символьный литерал: If KeyPress.KeyChar = ">"c

person Simon Farshid    schedule 10.09.2014

Внесите простое изменение в свой код:

    Dim keypress As ConsoleKeyInfo
    Do
        keypress = Console.ReadKey()
        If keypress.KeyChar = Chr(62) Then
            Console.WriteLine("Greater Than")
        End If
    Loop While keypress.Key <> ConsoleKey.X

Или вы можете использовать Like

    Dim keypress As ConsoleKeyInfo
    Do
        keypress = Console.ReadKey()
        If keypress.KeyChar = ">"C Then
            Console.WriteLine("Greater Than")
        End If
    Loop While keypress.Key <> ConsoleKey.X
person Community    schedule 10.09.2014