简体   繁体   中英

How to cancel RadioButton or CheckBox checked change

Is there any way to cancel a RadioButton or CheckBox's change in state before it changes?

I was hoping for a simple event like CheckedChanging or BeforeCheckedChange.

I really want to avoid listening for mouse clicks and key presses. But if you know of a proven reliable way of using mouse clicks and key presses, please explain it.

I'm using .NET 2.0 with standard Winforms controls.

Set AutoCheck to false.

Override OnClick to manual check the checkbox

Code demo's AutoCheck, adds a confirmation prompt to Click event.

 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; } } } 

I used this to cancel a radio button check.

 private void radioButton1_MouseClick(object sender, MouseEventArgs e)
    {
        RadioButton r = (RadioButton)sender;
        r.Checked = !(r.Checked);
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM