这可能很难问,但我会尽力而为。SO 和其他地方有很多关于在更改时触发事件的东西,但我想要相反的东西(至少我认为我这样做!)。
numericUpDowns
我在表单 ( )上有几个控件。对于每个 updown,我都在观察一个值是否已更改,它将触发一个“ValueChanged”方法。
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
//do some complicated code ...
}
这一切都适用于对上下控件的更改导致重新计算 fomr 但是如果我想在一个方法中设置一些值并且ValueChanged
直到最后才调用我的方法怎么办?
我几乎想要这样的东西
// start ignoring form events here
numericUpDown1.Value = 500;
numericUpDown2.Value = 50;
numericUpDown3.Value = 0;
// resume detecting form events here !
有没有办法打开和关闭它?这是我应该担心的事情吗?
我有限的 C# 知识将我带到这一点的最好的事情是创建一个名为“ bIgnoreEvents
”的变量并在我的每个ValueChanged
方法中使用它......
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
if (!bIgmoreEvents)
{
//do some complicated code ...
}
}
这会跳过代码,但看起来很乱。有没有更简单的方法?