Подтвердить что ты не робот

Как отменить проверку RadioButton или CheckBox

Есть ли способ отменить изменение RadioButton или CheckBox в состоянии до его изменения?

Я надеялся на простое событие, например CheckedChanging или BeforeCheckedChange.

Я действительно хочу избежать прослушивания щелчков мышью и нажатия клавиш. Но если вы знаете проверенный надежный способ использования щелчков мышью и нажатия клавиш, пожалуйста, объясните это.

Я использую .NET 2.0 со стандартными элементами управления Winforms.

4b9b3361

Ответ 1

Установите AutoCheck в значение false.

Переопределить OnClick для ручной установки флажка

Ответ 2

Код демо 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;
        }
    }
}

Ответ 3

Я использовал это, чтобы отменить проверку переключателя.

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