当(Windows Form) 复选框未被选中时(但不是选中时),是否有任何方法或是否有可能编写一个方法来执行一组指令?我将提供我的示例代码来澄清这一点。
现有示例代码:
private void ChkBox_CheckedChanged(object sender, EventArgs e)
{
if (ChkBox.Checked == false)
{
MessageBox.Show("unchecked");
}
}
问: if condition
是否可以通过为此编写一个仅在未选中复选框时执行的方法来避免。
插图: 像这样:
private void ChkBox_Unchecked(object sender, EventArgs e)
{
MessageBox.Show("unchecked");
}
附加评论:对于事件“checkbox is checked”,我没有任何要执行的东西。所以我只是在想我是否可以通过将 checkchanged
事件替换为未选中
事件类型。
最佳答案
如果你真的需要那些奇怪的事件,那么通过继承 CheckBox 创建自定义复选框。覆盖它的 OnCheckedChanged
事件,并添加您的 Unchecked
事件:
public class StrageCheckBox : CheckBox
{
public event EventHandler Unchecked;
protected override void OnCheckedChanged(EventArgs e)
{
base.OnCheckedChanged(e);
if (!Checked)
OnUnchecked(e);
}
protected virtual void OnUnchecked(EventArgs e)
{
if (Unchecked != null)
Unchecked(this, e);
}
}
使用 StrangeCheckBoxes
代替默认复选框。订阅 Unchecked
事件。瞧,你的行为很奇怪。
备注 其实我不建议在所有情况下都使用自定义控件或if/else。如果您有许多具有这种行为的复选框,那么自定义控件比每个处理程序中的许多重复 if/else 更好。如果您有多个控件或所有复选框的单个处理程序,那么我会采用 if/else 方法。
关于c# - "checked = false"的复选框(事件)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15200618/