gpt4 book ai didi

c# - 以编程方式检查控件时如何防止触发 CheckedChanged 事件?

转载 作者:IT王子 更新时间:2023-10-29 04:12:21 24 4
gpt4 key购买 nike

如何在以编程方式检查控件时防止触发 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
}

是否有更好或更通用的解决方案?

最佳答案

我觉得你的方法很好。

另一种方法是在检查前删除 EventHandler,然后在检查后重新添加。这种方式消除了对 isFrozen 变量的需要。

private void btn1_CheckedChanged(object sender, EventArgs e)
{
btn2.CheckedChanged -= btn2_CheckedChanged;
btn2.Checked = false;
btn2.CheckedChanged += btn2_CheckedChanged;

// Do some staff
}

private void btn2_CheckedChanged(object sender, EventArgs e)
{
btn1.CheckedChanged -= btn1_CheckedChanged;
btn1.Checked = false;
btn1.CheckedChanged += btn1_CheckedChanged;

// Do another staff
}

关于c# - 以编程方式检查控件时如何防止触发 CheckedChanged 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8089072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com