我的第一篇文章在这里。
我建立一个计算器,通过文本框需要用户输入,并转换为双并通过这些数字到包含公式的自定义类(答案被转换回字符串一次完成)。 我所拥有的一切工作,但我想的答案,一旦文本框填写了自动更新的标签。 标签文本输出正确的一次点击。
继承人的代码,我有标签到目前为止...
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
一种方法是使这样的:
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
事件也是如此。 这将计算每次键入数字的时间。 但是,这可能过于频繁。
创建一个功能,它的计算则该函数绑定到更改事件上的所有文本框。
我不会每次运行计算迈克尔或测量建议。
相反,只要把几个,如果在点击事件语句测试,看看所需的框有值。 如果他们不这样做,然后显示一个消息,说他们需要填写。
就像是:
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