back

チェックボックスとラジオボタン (2/4)

■CheckedとUncheckedイベント

次にCheckBoxをプログラムで利用する場合について説明しましょう。まずイベントですが、クリックした時に発生するClickイベントの他に、チェック状態の変化に応じたイベントが用意されています。

Checked――選択された(ONになった)ときに発生するイベントです。
Unchecked――選択が外された(OFFになった)ときに発生するイベントです。

CheckBoxのチェック状態に関するイベントは、このように「ONになったとき」「OFFになったとき」とそれぞれ別に用意されています。ON/OFF状態に応じた処理を用意する場合は、この両方のイベントを利用する必要があるでしょう。

また、InThreeStateで未定状態を使えるようにした場合、このどちらのイベントも発生しないので注意が必要です。では、実際に利用してみましょう。

ここでは1つのTextBlocktextblock1)と、2つのCheckBox(それぞれcheck1check2としておきます)を配置し、check2IsThreeStateをONにしておきます。そして以下のようにイベントを設定します。

●check1
Checked――OnCheck1_Checked
Unchecked――OnCheck1_Unchecked

●check2
Clicked――OnCheck2_Clicked

下にそれぞれのメソッドのコードを掲載しておきます。アプリを実行し、2つのチェックボックスを操作してみましょう。チェックの状態がTextBlockに表示されます。

CheckBoxのチェック状態は「IsChecked」プロパティで取得できます。ここではイベント用メソッドの引数で渡されるobjectCheckBoxにキャストして、イベントが発生したCheckBoxIsCheckedを取得して表示するようにしてあります。

この値は、基本的にはtrueかfalseになりますが、IsThreeStateをONにして「未定」状態にした時には、IsCheckedはどうなるのでしょう? 真偽値はtrueかfalseしか値がないはずですね?

実際にやってみるとわかりますが、実は未定の時は、IsCheckの値は「null」になるのです。「それってアリかよ!」と思わず突っ込んだ人、います?



(by. SYODA-Tuyano.)

※リストが表示されない場合

AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。

        private void OnCheck1_Checked(object sender, RoutedEventArgs e)
        {
            CheckBox check1 = (CheckBox)sender;
            string msg = "you checked check1 to " + check1.IsChecked;
            textblock1.Text = msg;
        }

        private void OnCheck1_Unchecked(object sender, RoutedEventArgs e)
        {
            CheckBox check1 = (CheckBox)sender;
            string msg = "you checked check1 to " + check1.IsChecked;
            textblock1.Text = msg;
        }

        private void OnCheck2_Clicked(object sender, RoutedEventArgs e)
        {
            CheckBox check2 = (CheckBox)sender;
            string msg = "you checked check1 to " + check2.IsChecked;
            textblock1.Text = msg;
        }





   

記事のリストに戻る



PC Site G+ mail