C#。如何使用将多个文本框传递给方法并自动刷新标签

时间:2013-11-17 02:47:36

标签: c# labels

我在这里的第一篇文章。

我正在构建一个计算器,它通过文本框获取用户输入并转换为double并将这些数字传递到包含公式的自定义类中(一旦完成,答案将转换回字符串)。我有一切正常,但我希望带有答案的标签在文本框填写后自动更新。单击后标签文本输出正确。

这是迄今为止我为标签制作的代码......

    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

3 个答案:

答案 0 :(得分: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事件。每次输入数字时都会计算出来。但这可能太频繁了。

答案 1 :(得分:0)

创建一个执行计算的函数,然后将该函数绑定到所有文本框上的已更改事件。

答案 2 :(得分:0)

每次迈克尔或测量建议时,我都运行计算。

相反,只需在点击事件中添加一些if语句,以测试所需的框是否具有值。如果他们不这样做,那么就显示一条消息说他们需要填写它。

类似的东西:

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