gpt4 book ai didi

c# - 设置 myButton.Enabled = true 会触发单选按钮的 CheckedChanged 处理程序

转载 作者:行者123 更新时间:2023-11-30 22:08:19 25 4
gpt4 key购买 nike

除了选中单选按钮之外,我绝对没有任何编程链接或属性设置,因此我的 CheckedChanged 会因任何事情而触发。

但是,当我单击另一个不相关的按钮时,该按钮的单击处理程序将触发(这是预期的)。在此点击处理程序中,按钮会自行禁用(它会在点击不同按钮时重新启用),然后触发 myRadioButton_CheckedChanged 句柄以触发不相关的单选按钮。

我看到的调用栈本质上是

myRadioButton_CheckedChanged (...)我的按钮点击(...)主要(...)

myButton_Click 中触发 myRadioButton_CheckedChanged 的​​行显然是

myButton.Enabled = false;

相关代码为:

private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
// L-R
if (radioButton1.Checked == true)
{
orientation_left = 3;
pictureBox2.Invalidate();
Debug.Print("left {0}", orientation_left);
}
}

private void select1_Click(object sender, EventArgs e)
{
Debug.Print("select1click");

if (select1Down == false)
{
// ... stuff
select1.Enabled = false; // Causing the CheckedChanged to fire
select2.Enabled = false;
select1Down = true;
}
}

最佳答案

好的,知道了。

检查 Button 和 RadioButton 上的 TabOrder。

似乎当您禁用 Button 时,焦点会转移到下一个控件,这可能是您的 RadioButton,导致它被选中。

在我的测试 From 中,我所要做的就是确保 RadioButton 的 TabOrder 不在 Button 之后。

干杯

编辑:

这似乎是一个已知问题,因为我刚刚发现这个 MSDN 线程:http://social.msdn.microsoft.com/Forums/windows/en-US/77fbec3b-1f63-42e1-a200-19b261b63794/the-radiobutton-clicked-event-is-fired-without-the-radio-button-beeing-clicked-?forum=winforms

关于c# - 设置 myButton.Enabled = true 会触发单选按钮的 CheckedChanged 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22366255/

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