如何取消RadioButton或CheckBox检查更改

26 .net events winforms

有没有办法在更改之前取消RadioButton或CheckBox的状态更改?

我希望有一个像CheckedChanging或BeforeCheckedChange这样的简单事件.

我真的想避免听老鼠点击和按键.但是,如果您知道使用鼠标点击和按键的可靠方法,请解释一下.

我正在使用带有标准Winforms控件的.NET 2.0.

Rvd*_*vdK 39

将AutoCheck设置为false.

覆盖OnClick以手动选中复选框

  • 我什至不知道 AutoCheck 存在。这正是我想要的,谢谢。 (2认同)
  • 对于radiobutton,来自doc的重要说明:`如果AutoCheck属性设置为false,则一组RadioButton控件将不会充当互斥组,并且必须在代码中更新Checked属性. (2认同)

Cor*_*ger 21

代码演示的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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 如果在控件具有焦点时按下空格键,这是否有效? (2认同)