C# - 键入值时刷新文本框

时间:2014-11-06 08:40:24

标签: c# windows forms textbox

如何在键入这样的值时自动刷新文本框? enter image description here

我试图做同样的事情,但它没有用。我总是按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");
        }
    }

2 个答案:

答案 0 :(得分:2)

只需使用事件KeyUp。每次放置符号时都会触发。

ValueChanged无法正常工作,因为它仅在您完成编辑时触发 - 您按Enter键或更改焦点。

所以基本上将你的事件从ValueChanged改为KeyUp。

我没有发布任何代码,因为唯一的更改是订阅其他事件。你的功能很好,但是你应该更改它的名字:)

答案 1 :(得分:2)

将您的代码放入文本框的TextChanged事件中。

喜欢这个

 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
    }