Считывать нажатия кнопок в WinForms

196
22 октября 2018, 21:40

В приложении важны доли секунды для точных вычислений. Можно ли после введенного значения в TextBox нажав кнопку Enter выполнялся какой либо блок кода. Ну или условие какое сделать. Выслушаю все предложения

Задействовано только кнопка поле ввода и 0 + 0

private void button1_Click(object sender, EventArgs e)
    {
        int result = 0;
        int num1 = label1.Text.ToInt();
        int num2 = label3.Text.ToInt();
        string operation = label2.Text;
        switch (operation)
        {
            case "+":
                result = num1 + num2;
                break;
            case "-":
                result = num1 - num2;
                break;
            case "/":
                result = num1 / num2;
                break;
            case "*":
                result = num1 * num2;
                break;
        }
        if (result == textBox1.Text.ToInt())
            right++;
        else
            wrong++;
        Random r = new Random();
        label1.Text = r.Next(1, 51).ToString();
        label3.Text = r.Next(1, 51).ToString();
        switch (r.Next(0, 2))
        {
            case 0:
                label2.Text = "+";
                break;
            case 1:
                label2.Text = "-";
                break;
            case 2:
                label2.Text = "*";
                break;
            case 3:
                label2.Text = "/";
                break;
        }
    }

Можно ли что бы не нажатие на кнопку выполняло это действие а кнопка Enter

Answer 1

Да, можно, в WinForms есть специальные обработчики для таких случаев. Например, можно у textbox в панели события включить обработчик KeyPress

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)Keys.Enter)
    {
        textbox1.Text = "вот и обработалось нажатие".
    }
}

Тоже самое можно сделать у формы, т.е. добавить обработчик события к форме:

public void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)Keys.Enter)
    {
        textbox1.Text = "вот и обработалось нажатие".
    }
}

Обработчики событий, например, в VisualStudio можно объявить в коде двойным нажатием на <название события> в панели свойств объекта, во вкладке события.

READ ALSO
Как правильно распарсить html код?

Как правильно распарсить html код?

Есть html код, использую CsQuery, собственно как правильно вытащить селекторы из этого кодаИнтересует, как мне выдрать Менеджер по грузоперевозкам...

186
Открыть папке сетевой доступ (шара)

Открыть папке сетевой доступ (шара)

Подскажите, пожалуйста, как имея Path какой-либо папки, сделать ее сетевой, то есть создать "шару"

201
rowsGroup datatables

rowsGroup datatables

Я совсем новичок в программированииНе получается добиться rowsGroup

179