Определение, какая клавиша нажата - PullRequest
0 голосов
/ 05 октября 2010

Эта функция имеет много применений. У меня есть элемент управления TextBox. Как отобразить клавиши, которые нажимал пользователь. Например, нажмите CTRL и z в элементе управления TextBox должно появиться "Ctrl + Z"? Это приложение WPF. Спасибо.

Теперь я пытаюсь так:

  private void txtHotKey_PreviewKeyUp(object sender, KeyEventArgs e)
    {            
        txtHotKey.Text += e.Key.ToString();
        txtHotKey.Text += "+";
        e.Handled = true;
    }

Теперь, если я нажал Ctrl и Z в текстовом поле, появятся «Ctrl + Z +». Затем нажмите Ctrl и A. Будет "Ctrl + Z + Ctrl + A +". Это неправильно.

Ответы [ 2 ]

4 голосов
/ 05 октября 2010

Вы смотрели на KeyEventArgs , который вы передали обработчику событий KeyDown TextBox ?У него множество свойств, которые определяют, какая клавиша была нажата.

0 голосов
/ 05 октября 2010

Взгляните на следующий пост с примером кода: Захват событий нажатия клавиш с помощью WPF

Это вам помогает?Вы можете либо присоединиться к сетке (или к вашему текстовому полю) с помощью обработчика событий KeyDown, либо использовать метод Window_KeyDown.

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