Определить Shift + 1 как Key.Add - PullRequest
       3

Определить Shift + 1 как Key.Add

2 голосов
/ 09 февраля 2011

Я хотел бы обнаружить, что пользователь нажимает клавишу «добавить» в обработчике событий .net 4 WPF KeyDown. Для этого я использую следующий тест:

if (e.Key == Key.Add)

Это не обнаруживает случай, когда пользователь нажимает Shift + 1 (что соответствует «добавить» на моей раскладке клавиатуры).
Как я могу это обнаружить? Я не уверен, что тестирование

if (e.Key == Key.D1 && Keyboard.Modifiers == ModifierKeys.Shift)

- правильное решение, так как оно может быть отображено в другом месте на другой раскладке клавиатуры.

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 03 октября 2012
private void trackBarFrames_KeyDown(object sender, KeyEventArgs e)
{
    switch ( e.KeyCode)
    {
        case Keys.Add :
            // Nummeric Keypad Add 
            AddSomething();
            break;
        case Keys.Oemplus :
            // Regular keyboard Add
            // OemPlus is assigned to the regular keyboard key with a "Add" Sign but doesn not take shift conditions in account..!
            if (e.Modifiers == Keys.Shift)
            {
                AddSomething();
            }
            break;
    }
}
0 голосов
/ 18 мая 2011

Вместо этого вы можете использовать обработчик событий KeyPress.

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