2016-05-07 2 views
1

Проблема заключается в том, что для подчеркивания и минус значение ключа равно 189, а keycode - Keys.OemMinus. Поэтому я не могу проверить, является ли нажатый ключ подчеркиванием или минусом. Пожалуйста помоги.Как определить, нажата ли клавиша «Подчеркивание» или «Минус»? C#

private void Some_KeyDown(object sender, KeyEventArgs e) 
{ 
     if(Pressed key is minus/dash) 
     { 
      MessageBox.Show("minus"); 
     } 

     if(pressed key is underscore) 
     { 
      MessageBox.Show("underscore"); 
     } 
} 
+1

Вы уверены, что asp.net тег имеет значение, а не WinForms? В последнем случае взгляните на свойство «Shift» и/или «Модификаторы» класса KeyEventArgs. – CodeCaster

ответ

4

Если это проект WinForms, используйте KeyPress событие вместо KeyDown события:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if(e.KeyChar == '-') 
    { 
     MessageBox.Show("Minus"); 
    } 
    if (e.KeyChar == '_') 
    { 
     MessageBox.Show("Underscore"); 
    } 
} 
+0

Ну, все должно быть сделано при событии KeyDown. –

+0

Почему? Пожалуйста, объясните, почему вы хотите сделать это в Keydown? – NineBerry

+0

Его дерево список Dev Express. Я хочу двигаться по узлу в соответствии с нажатой клавишей. Теперь я думаю, что это можно сделать с помощью KeyPress вместо KeyDown, так как там есть KeyChar. –

 Смежные вопросы

  • Нет связанных вопросов^_^