[WPF] チェック状態を確認する

スポンサーリンク

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 = "チェックが未確定になりました";
}
タイトルとURLをコピーしました