.net - チェックボックス - vb net lostfocus キャンセル



RadioButtonまたはCheckBoxの変更をキャンセルする方法 (2)

変更前の状態でRadioButtonまたはCheckBoxの変更をキャンセルする方法はありますか?

私はCheckedChangingやBeforeCheckedChangeのような単純なイベントを期待していました。

私は本当にマウスのクリックやキーの押下を聞いてはいけません。 しかし、マウスクリックやキープレスを使用した実績のある信頼できる方法が分かっている場合は、説明してください。

標準のWinformsコントロールで.NET 2.0を使用しています。

https://ffff65535.com


AutoCheckをfalseに設定します。

OnClickをオーバーライドしてチェックボックスをオンにする


コードデモの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;
        }
    }
}




events