CheckBox コントロールのチェック状態を確認するには IsChecked プロパティを参照するほかに、Click イベント、Checked イベント、Unchecked イベント、Indeterminate イベントを利用して確認する方法があります。
下記にそれぞれのイベントがどのような時に発生するのかを示します。
チェック状態を確認できるイベント イベント名説明 Clickイベント CheckBoxコントロールがクリックされたときに発生します。
クリックされるとIsChecked プロパティの値が変更されます。 Checkedイベント CheckBoxコントロールがオン(IsCheckedがTrue)の時に発生します。 Unchekedイベント CheckBoxコントロールがオン(IsCheckedがFalse)の時に発生します Indeterminateイベント CheckBoxコントロールがオン(IsCheckedがNull)の時に発生します
下記は、Clickイベントが発生したときの状態を TextBlock1 に、Checked イベント/Unchecked イベント/Indeterminate イベントが発生したときの状態を TextBlock2 コントロールに表示する例です。
VBの例
' チェック状態が変更された場合の処理 Private Sub CheckBox1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles CheckBox1.Click If IsNothing(CheckBox1.IsChecked) Then TextBlock1.Text = "チェック 未確定" ElseIf Not CheckBox1.IsChecked Then TextBlock1.Text = "チェック オン" Else TextBlock1.Text = "チェック オフ" End If End Sub ' チェックがオンになった場合の処理 Private Sub CheckBox1_Checked(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles CheckBox1.Checked TextBlock2.Text = "チェックがオンになりました" End Sub ' チェックがオフになった場合の処理 Private Sub CheckBox1_Unchecked(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles CheckBox1.Unchecked TextBlock2.Text = "チェックがオフになりました" End Sub ' チェックが未確定になった場合の処理 Private Sub CheckBox1_Indeterminate(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles CheckBox1.Indeterminate TextBlock2.Text = "チェックが未確定になりました" End Sub
C#の例
// チェック状態が変更された場合の処理 private void checkBox1_Click(object sender, RoutedEventArgs e) { if ( checkBox1.IsChecked == null) textBlock1.Text = "チェック 未確定"; else if ( (bool)checkBox1.IsChecked ) textBlock1.Text = "チェック オン"; else textBlock1.Text = "チェック オフ"; } // チェックがオンになった場合の処理 private void checkBox1_Checked(object sender, RoutedEventArgs e) { textBlock2.Text = "チェックがオンになりました"; } // チェックがオフになった場合の処理 private void checkBox1_Unchecked(object sender, RoutedEventArgs e) { textBlock2.Text = "チェックがオフになりました"; } // チェックが未確定になった場合の処理 private void checkBox1_Indeterminate(object sender, RoutedEventArgs e) { textBlock2.Text = "チェックが未確定になりました"; }