2

btn1_MouseDownイベント を作成します。

  private void btn1_MouseDown(object sender, MouseEventArgs e)
    {
        btn1.BackgroundImage = Properties.Resources.click;
    }

I want to disable that btn1_MouseDownt Event behind this RadioButton when it checked. I mean to say when Radiobutton checked then this btn1_MouseDown event should not work.

    private void r1_CheckedChanged(object sender, EventArgs e)
    {

        if (r1.Checked == true)
            clock = 5;

        radioButton2.Enabled = false;
        radioButton3.Enabled = false;
        radioButton4.Enabled = false;     
    }

それは可能ですか?

4

3 に答える 3

3

r1_checkeChanged追加の内部:

btn1.MouseDown -=btn1_MouseDown;
于 2013-01-19T14:41:39.623 に答える
0

イベントを削除できます。

btn1.MouseDown -= btn1_MouseDown

もちろん、必要なときにもう一度追加することを忘れないでください。


ただし、その代わりに、イベントハンドラーのコードを変更して、ラジオボタンの状態を確認します。

private void btn1_MouseDown(object sender, MouseEventArgs e)
{
    if (!r1.Checked)
        btn1.BackgroundImage = Properties.Resources.click;
}
于 2013-01-19T14:43:21.723 に答える
0

1st option次のように、ラジオボタンcheck_changeイベントでイベントを削除することができます。

btn1.MouseDown-= btn1_MouseDow;

しかし、私はこの方法を好みません。
Secondこのイベントの開始時にフラグを追加し、次のようにイベントを実行するかどうかを確認します。

bool flag;

private void btn1_MouseDown(object sender, MouseEventArgs e)
{
    if (flag) return;
    btn1.BackgroundImage = Properties.Resources.click;
}
于 2013-01-19T14:45:34.690 に答える