Введите ввод с клавиатуры в форме Windows (C #) - PullRequest
0 голосов
/ 28 сентября 2019

Я сделал калькулятор, и осталось только заставить его работать с клавиатуры.Все работает отлично, пока я не доберусь до Enter KeyDown.Проблема в том, что когда я запускаю свой калькулятор, выбирается верхняя кнопка, и если я нажимаю Enter, она вместо этого вызывает метод этой конкретной кнопки (номер 7).Также кажется, что если я нажимаю какую-либо кнопку вообще, она будет выделена, и то же самое произойдет, если я нажму Enter.

Я попытался настроить мою форму на acceptButton = "none" и "equal_btn"(моя кнопка равенства, я хочу использовать ее, когда нажимаю Enter), но это не помогло

private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
                case Keys.D0:
                    btn_zero.PerformClick();
                    /*PerformClick() because all methods are for buttons*/
                    break;
                case Keys.D1:
                    btn_one.PerformClick();
                    break;
                case Keys.D2:
                    btn_two.PerformClick();
                    break;
                /*......*/
                case Keys.Oemplus:
                    plus.PerformClick();
                    break;
                case Keys.Enter:
                    equal.PerformClick();
                    break;
            }
        }

Что я ожидаю, так это то, что когда я нажимаю Enter, будет вызываться метод Equal.Вместо этого, как было сказано ранее, он называет только выбранные кнопки.Кстати, все остальные кнопки работают отлично.

(надеюсь, я ничего не пропустил в StackOverflow, в противном случае извините)

1 Ответ

0 голосов
/ 28 сентября 2019

то, что вы можете сделать, это Form1_Load изменить фокус на другой элемент, например, на те, которые будут вашими вводами, я полагаю.где у вас есть калькулятор.как btnEnter.Select();, что помешает запустить этот метод в кнопке.

наконец, чтобы изменить порядок вкладок, как Cais Jard сказал, что у вас есть два варианта, один находится в файле Form1.designer.csи в компонентах инициализации у вас есть все кнопки и т. д., а затем вы перечислили их, как это this.buttonXX.TabIndex = 0;, просто замените на тот, который вам нужен.

Другой вариант изменить tabindex находится в свойствахэлемент.который в основном, перейти к конструктору, нажмите на элемент и нажмите F4 внутри подменю behavior у вас есть опция tabindex

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