在更改之前有没有办法取消RadioButton或CheckBox的状态变化?
我希望有一个像CheckedChanging或BeforeCheckedChange这样的简单事件。
我真的想避免听老鼠点击和按键。但是,如果您知道使用鼠标点击和按键的可靠方法,请解释一下。
我正在使用带有标准Winforms控件的.NET 2.0。
答案 0 :(得分:39)
将AutoCheck设置为false。
覆盖OnClick以手动选中复选框
答案 1 :(得分:19)
代码演示的AutoCheck,为Click事件添加确认提示。
public partial class Form1 : Form { public Form1() { InitializeComponent(); this.checkBox1.AutoCheck = false; this.checkBox1.Click += new System.EventHandler(this.checkBox1_Click); } private void checkBox1_Click(object sender, EventArgs e) { CheckBox checkBox = (CheckBox)sender; if (!checkBox.Checked) { DialogResult dialogResult = MessageBox.Show( "Are you sure?", "my caption", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { checkBox.Checked = true; } } else { checkBox.Checked = false; } } }
答案 2 :(得分:1)
我用它来取消单选按钮检查。
private void radioButton1_MouseClick(object sender, MouseEventArgs e)
{
RadioButton r = (RadioButton)sender;
r.Checked = !(r.Checked);
}