C#。 如何使用通过多个​​文本框为方法和自动刷新标签(C#. How to use pass

2019-10-18 23:48发布

我的第一篇文章在这里。

我建立一个计算器,通过文本框需要用户输入,并转换为双并通过这些数字到包含公式的自定义类(答案被转换回字符串一次完成)。 我所拥有的一切工作,但我想的答案,一旦文本框填写了自动更新的标签。 标签文本输出正确的一次点击。

继承人的代码,我有标签到目前为止...

    private void lblUtil1_Click(object sender, EventArgs e)
    {

        dblUtil1 = Tinseth.Bigness(dblSG) * Tinseth.BTFactor(dblBT1);
        double UtilRounded1 = Math.Round(dblUtil1 * 100);
        lblUtil1.Text = UtilRounded1.ToString() + "%";
    }

是不是有什么,如果所有相关字段后,可以检测或将这个需要一个循环? 我非常感谢所有帮助,并期待成为这个社区的一部分!

growthtek

Answer 1:

一种方法是使这样的:

private void lblUtil1_Click(object sender, EventArgs e)
{
    dblUtil1 = Tinseth.Bigness(dblSG) * Tinseth.BTFactor(dblBT1);
    double UtilRounded1 = Math.Round(dblUtil1 * 100);
    lblUtil1.Text = UtilRounded1.ToString() + "%";
}

一个共享的方法:

private void Calculate();
{
    dblUtil1 = Tinseth.Bigness(dblSG) * Tinseth.BTFactor(dblBT1);
    double UtilRounded1 = Math.Round(dblUtil1 * 100);
    lblUtil1.Text = UtilRounded1.ToString() + "%";
}

和摆脱的Click事件。 然后消耗文本框Validated事件:

private void TextBox_Validated(object sender, EventArgs e)
{
    Calculate();
}

现在,所有挂钩的文本框Validated事件到这个相同的处理。 现在,当用户离开文本框,它会自动计算。

Validated事件可能只是很容易被TextChanged事件也是如此。 这将计算每次键入数字的时间。 但是,这可能过于频繁。



Answer 2:

创建一个功能,它的计算则该函数绑定到更改事件上的所有文本框。



Answer 3:

不会每次运行计算迈克尔或测量建议。

相反,只要把几个,如果在点击事件语句测试,看看所需的框有值。 如果他们不这样做,然后显示一个消息,说他们需要填写。

就像是:

if (String.IsNullOrEmpty(TextBox1.Text)) {
    MessageBox.Show("TextBox1 is empty");
    return;
}


文章来源: C#. How to use pass multiple text boxes into method and automatically refresh label
标签: c# labels