C # - обновить текстовое поле при наборе значения

1

Как я могу сделать автоматическое обновление текстового поля при вводе значения, как это? Изображение 174551

Я пытался сделать то же самое, но это не сработало. я всегда нажимаю ENTER для обновления или нажимаю стрелки вверх/вниз, чтобы обновить значение

Изображение 174551

вот код

    private void numericUpDown1_ValueChanged(object sender, EventArgs e)
    {
        try
        {
            double a = double.Parse(s1.Text); //textbox 1
            double b = double.Parse(s2.Text); //textbox 2

            double s = a * b;
            resultSpeed.Text = "" + s; //s is the result
        }
        catch
        {
            MessageBox.Show("Please input the number");
        }
    }
  • 0
    ValueChanged запускается, когда вы ValueChanged ввод или фокусировку, используйте keyup, чтобы значение ValueChanged при каждом нажатии клавиши.
  • 0
    Подписаться на другое событие: PreviewKeyDown
Показать ещё 3 комментария
Теги:
forms
textbox

2 ответа

2
Лучший ответ

Просто используйте событие KeyUp. Он будет запускаться каждый раз, когда вы ставите символ.

ValueChanged не работает, потому что он запускается только после завершения редактирования - вы нажимаете клавишу ввода или меняете фокус.

Поэтому в основном измените свое событие с ValueChanged на KeyUp.

Я не отправляю код, потому что единственное изменение будет заключаться в другом событии. Ваша функция в порядке, однако вы должны изменить ее имя :)

  • 0
    Спасибо за вашу помощь. Я попробовал событие KeyUp, и это сработало
2

Поместите свой код в текстовое поле TextChanged Event.

Как это

 private void textBox1_TextChanged(object sender, EventArgs e)
        {
            calculate();
        }

    private void textBox2_TextChanged(object sender, EventArgs e)
    {
        calculate();
    }

    private void calculate()
    {
        double a = 0, b = 0, demo;
        if (double.TryParse(textBox1.Text, out demo))
            a = double.Parse(textBox1.Text); //textbox 1
        if (double.TryParse(textBox2.Text, out demo))
            b = double.Parse(textBox2.Text); //textbox 2

        double s = a * b;
        textBox3.Text = s.ToString(); //s is the result
    }
  • 0
    Этот код также полезен, но я использую событие KeyUp

Ещё вопросы

Сообщество Overcoder
Наверх
Меню