C# 防止复选框选中事件
我有一个C# 防止复选框选中事件,c#,winforms,checkbox,C#,Winforms,Checkbox,我有一个复选框,我想询问用户是否确定,否则我将取消操作 我尝试了Click事件,但结果表明它仅在CheckedChanged事件之后才被调用 我想我至少可以通过询问CheckedChanged事件中的用户来“丑陋”地完成这项任务,但如果他希望取消,我需要更改Checked值,再次引发事件的原因是什么 使用此解决方案我希望避免的另一件事是,即使在用户答复之前,复选框中也会出现勾号 我正在寻找在CheckedChanged之前发生的事件,或者防止CheckedChanged事件发生的方法 将Auto
复选框
,我想询问用户是否确定,否则我将取消操作
我尝试了Click
事件,但结果表明它仅在CheckedChanged
事件之后才被调用
我想我至少可以通过询问CheckedChanged
事件中的用户来“丑陋”地完成这项任务,但如果他希望取消,我需要更改Checked
值,再次引发事件的原因是什么
使用此解决方案我希望避免的另一件事是,即使在用户答复之前,复选框中也会出现勾号
我正在寻找在CheckedChanged
之前发生的事件,或者防止CheckedChanged
事件发生的方法 将AutoCheck
设置为false
。并在单击事件中处理选中的状态。查找示例代码。它只是删除附加到复选框的事件并将其添加回来
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
checkBox1.CheckedChanged -= checkBox1_CheckedChanged;
checkBox1.Checked = false;
checkBox1.CheckedChanged += checkBox1_CheckedChanged;
}
}
加起来等于SiveAjet的回答
AutoCheck
属性设置为false
,以防止在单击复选框时自动更新其外观
请参阅下面的AutoCheck
的官方文档
获取或设置一个值,该值指示
System.Windows.Forms.CheckBox.Checked
或者System.Windows.Forms.CheckBox.CheckState
值和System.Windows.Forms.CheckBox的
选中System.Windows.Forms.CheckBox
时,外观会自动更改
点击
请尝试下面的ClickEvent处理程序
private void checkBox_Click(object sender, EventArgs e)
{
if (checkBox.Checked == false)
{
DialogResult result = MessageBox.Show("Confirmation Message", "Confirm",
MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (result == DialogResult.OK)
{
checkBox.Checked = true;
}
}
else
{
checkBox.Checked = false;
}
}
工作很好,谢谢!