c # обнаруживает и отправляет ключи f13-f24 - PullRequest
0 голосов
/ 23 мая 2018

Мне нужно приложение, которое может обнаружить нажатие клавиши F13 - F24 .Я пытался создать форму и настроить нажатия клавиш и события нажатия клавиш и распечатать в окне сообщения нажатую клавишу, но когда я нажимаю F13 - F24 , я не получаю окно сообщения

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    MessageBox.Show(e.KeyCode.ToString());
}

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    MessageBox.Show(e.KeyChar.ToString());
} 

Это не похоже на работу.Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Windows 10 не распознает более высокие функциональные клавиши 13-24.Вы можете проверить это, включив функциональность Windows Narrator, а затем нажмите Shift - F1 .Рассказчик просто говорит «Shift F1», а не «F13»

Так что вместо этого я рекомендую вам просто обнаружить Shift - F1 до Shift - F12 .

private void Form1_PreviewKeyDown(object sender, KeyPressEventArgs e)
{ 
   if(e.KeyCode == Keys.F1 && e.Modifiers == Keys.Shift)
   {
      MessageBox.Show("Shift-F1 pressed");
   }
}

Как прокомментировал MstfAsan, вам нужно использовать обработчик событий PreviewKeyDown и установить для свойства KeyPreview формы значение True, чтобы это работало

0 голосов
/ 24 мая 2018

Вы можете захватить это используя System.Windows.Forms.KeyEventHandler.

KeyEventHandler предоставит объект KeyEventArgs, который включает свойство KeyCode.KeyCode является перечислением System.Windows.Forms.Keys и поддерживает F1 - F24 .

private void KeyDownHandler(object sender, System.Windows.Forms.KeyEventArgs e) {

    if (e.KeyCode == Keys.F13) {
        //F13
    } else if (e.KeyCode == Keys.F14) {
        //F14
    } else if (e.KeyCode == Keys.F15) {
        //F15
    }
    // etc
}

Если у вас нет клавиатурыспособные посылать более высокие F-клавиши, клавиши F13 - F24 эквивалентны SHIFT-F1 - SHIFT-F12 .Вы можете захватить эту последовательность, используя свойства KeyCode и Modifiers (Modifiers == Keys.Shift) вместе.

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