2014-11-06 4 views
1

Как я могу сделать автообновление текстового поля при вводе такого значения? enter image description hereC# - обновить текстовое поле при вводе значения

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

enter image description here

здесь код

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' срабатывает, когда вы нажмете ввести или фокус выключен, используйте KeyUp, чтобы изменения значений по каждому из ключевых инсульта. – artm

+0

Подпишитесь на другое событие: PreviewKeyDown – DevEstacion

+1

Говоря о текстовых полях, но на самом деле используя numericUpDown компоненты ... – Reniuz

ответ

2

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

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

Так что в основном измените свое событие с ValueChanged на KeyUp.

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

+0

Спасибо за помощь. я попробовал событие KeyUp, и он работал – prouser135

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 – prouser135

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