Как я могу сделать автоматическое обновление текстового поля при вводе значения, как это?
Я пытался сделать то же самое, но это не сработало. я всегда нажимаю ENTER для обновления или нажимаю стрелки вверх/вниз, чтобы обновить значение
вот код
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");
}
}
Просто используйте событие KeyUp. Он будет запускаться каждый раз, когда вы ставите символ.
ValueChanged не работает, потому что он запускается только после завершения редактирования - вы нажимаете клавишу ввода или меняете фокус.
Поэтому в основном измените свое событие с ValueChanged на KeyUp.
Я не отправляю код, потому что единственное изменение будет заключаться в другом событии. Ваша функция в порядке, однако вы должны изменить ее имя :)
Поместите свой код в текстовое поле 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
}
ValueChanged
запускается, когда выValueChanged
ввод или фокусировку, используйте keyup, чтобы значениеValueChanged
при каждом нажатии клавиши.