気になった事を自由に書いてます。
      
RadioButtonのClickイベントの注意点
Clickイベントってどんなときに発生するイベントなの?と聞かれたら
あなたはどのように答えますか?

マウスでクリックしたときでしょうか?
その通り、コントロールを押したときに発生するイベントです。

なんてことない質問です。。ですけど、、
RadioButtonのClickイベントはちょっと変わってました。
もちろん、マウスのクリックによって発生を促すのですが、
このイベントは選択状態になったときに発生するようです。

コントロールを押したときに発生するものだと思っていただけに
びっくりしました。

radioButton1.Select()みたいにフォーカスを移動するだけでも発生するので
Clickイベントの処理はそのことを考慮して実装する必要があります。

選択後のRadioButtonに対しプログラムでradioButton1.Select()すると
再度Clickイベントが発生します。



テストコード
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private void radioButton1_Click(object sender, EventArgs e)
    {
        MessageBox.Show("radioButton1_Click");

    }

    private void Form2_Shown(object sender, EventArgs e)
    {
        radioButton1.Select();
    }
}

でも、便利な面もあります。
選択状態で発生するイベントでCheckedChangedイベントがあるのですが
これは選択状態が変化したときに発生するためチェックしたときとチェックが外れたとき
の2パターン発生するタイミングが存在します。
チェックしたときだけイベント発生して欲しいよ。ということが結構あったりします。
このときはClickイベントが活躍します。
      





Copyright (C) 2011 - 2017 猫の気ままなC#日記