【发布时间】:2011-12-26 16:57:55
【问题描述】:
以编程方式检查控件时如何防止触发 CheckedChanged 事件?
我通常这样做。
private bool isFrozen = false;
private void btn1_CheckedChanged(object sender, EventArgs e)
{
if (isFrozen)
return;
isFrozen = true;
btn2.Checked = false;
isFrozen = false;
// Do some stuff
}
private void btn2_CheckedChanged(object sender, EventArgs e)
{
if (isFrozen)
return;
isFrozen = true;
btn1.Checked = false;
isFrozen = false;
// Do another stuff
}
有没有更好或更通用的解决方案?
【问题讨论】:
-
这是正确的方法。从技术上讲,您应该在 finally 块中将 isFrozen 设置回 false。