Есть ли какой-либо способ назначить кнопку клавиатуры для управления в c #?

#c# #winforms

#c# #winforms — формы

Вопрос:

Я создал калькулятор на c # Winform, в нем есть кнопки для ввода числовых значений. Я хочу, чтобы операция нажатия кнопок выполнялась нажатием клавиши клавиатуры. Например, когда я нажимаю «1» на клавиатуре, он обрабатывает операцию нажатия кнопки «button1».

Я уже пробовал

         private void Form1_Load(object sender, EventArgs e)
        {
            this.KeyPreview = true;
        }
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Control amp;amp; e.KeyCode == Keys.NumPad0)
            {
               button1.PerformClick();
            }
        }

 

Но это никак не влияет на мою программу.

Комментарии:

1. Зачем вы тестируете e.Control ?

2. См social.technet.microsoft.com/wiki/contents/articles/…

3. Удалить e.Control . Значения Keys.NumPadX являются последовательными, что означает, что вы можете получить числовое значение путем вычитания NumPad0 из KeyCode , если оно находится между NumPad0 и NumPad9 , например : if (e.KeyCode>=Keys.NumPad0 amp;amp; e.KeyCode<=Keys.NumPad9){ var number=e.KeyCode-Keys.NumPad0;}

4. Функция keydown не выбрана в свойствах события формы для KeyDown, поэтому она не работала. Теперь все в порядке, но я все равно не могу назначить клавишу ВВОДА моей кнопке «равно». Я пытался использовать форму acceptbutton и keys.enter, но они не работают.

Ответ №1:

пожалуйста, попробуйте это

     private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.NumPad1)
        {
           button1.PerformClick();
        }
    }