Muh*_*dar 28 c# oncheckedchanged radio-button winforms
请阅读我的问题,这不是一个重复的问题.
我在Windows窗体上有三个单选按钮,所有这些按钮都有相关的常见'CheckedChanged'事件.当我单击任何这些单选按钮时,它会触发"CheckedChanged"事件两次.
这是我的代码:
private void radioButtons_CheckedChanged(object sender, EventArgs e)
{
//My Code
}
Run Code Online (Sandbox Code Playgroud)
我插入断点,此事件中的整个代码迭代两次.请告诉我它为什么会这样?
Dav*_*all 64
正如其他答案者正确地说的那样,事件被触发两次,因为每当一个组中的一个RadioButton被检查时,另一个将被取消选中 - 因此被检查的已更改事件将触发两次.
要仅针对刚刚选择的RadioButton在此事件中执行任何工作,您可以查看发送方对象,执行以下操作:
void radioButtons_CheckedChanged(object sender, EventArgs e)
{
RadioButton rb = sender as RadioButton;
if (rb != null)
{
if (rb.Checked)
{
// Only one radio button will be checked
Console.WriteLine("Changed: " + rb.Name);
}
}
}
Run Code Online (Sandbox Code Playgroud)
每当 Checked 属性更改时,都会引发 CheckedChanged。如果您选择 RadioButton,则取消选中之前选择的 RadioButton(触发 CheckedChanged),然后选中新的 RadioButton(触发 CheckedChanged)。
要避免它,只需检查是否radioButton已选中
例如:
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if (radioButton1.Checked == true)
//your code
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59149 次 |
| 最近记录: |