[Tips][CheckBox] 3つの状態を使用する

本記事はWindowsアプリケーションのTipsです。


CheckBoxは3つの状態を表現することがきます。通常はチェックされた状態と未チェックの状態だけですが、これに加えて中間の状態(チェック状態でかつグレー表示)を表すことができます。3つの状態を表現できるようにするにはThreeStateプロパティをTrueにします。それぞれの状態は CheckStateプロパティを使用して切り替えます。CheckStateプロパティには表1に示すCheckState列挙対の値を指定します。

メンバ名 説明
Checked チェック状態
Unchecked 未チェック状態
Indeterminate チェック状態だがグレー表示

サンプルでは、フォームがロードされたときにチェックボックスが3つの状態を使用できるようにしています。また、Button1がクリックされたときに現在の状態を表示するようにしています。

VBの例

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    '3つの状態を使用できるようにする
    CheckBox1.ThreeState = True
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    'チェック状態の確認
    Select Case CheckBox1.CheckState
        Case CheckState.Checked
            MessageBox.Show("チェックされています。")
        Case CheckState.Indeterminate
            MessageBox.Show("中間の状態です。")
        Case CheckState.Unchecked
            MessageBox.Show("未チェック状態です。")
    End Select
End Sub

C#の例

private void Form1_Load(object sender, EventArgs e)
{
    //3つの状態を使用できるようにする
    checkBox1.ThreeState = true;
}

private void button1_Click(object sender, EventArgs e)
{
    //チェック状態の確認
    switch (checkBox1.CheckState)
    {
        case CheckState.Checked:
            MessageBox.Show("チェックされています。");
            break;
        case CheckState.Indeterminate:
            MessageBox.Show("中間の状態です。");
            break;
        case CheckState.Unchecked:
            MessageBox.Show("未チェック状態です。");
            break;
    }
}

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

本記事はWindowsアプリケーションのTipsです。


チェックボックスのチェック状態を確認するには、Checkedプロパティを使用します。チェックされているときはTrueを返します。

VBの例

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    'チェック状態を確認する
    If CheckBox1.Checked Then
        MessageBox.Show("チェックされています。")
    Else
        MessageBox.Show("チェックされていません。")
    End If
End Sub

C#の例

private void button1_Click(object sender, EventArgs e)
{
    //チェック状態を確認する
    if (checkBox1.Checked)
        MessageBox.Show("チェックされています。");
    else
        MessageBox.Show("チェックされていません。");
}

[Windows ストア アプリ] CheckBoxコントロールで3ステートを使用する

CheckBox コントロールはオン/オフ/不確定の3つの状態(3ステート)を使用することができます。

3ステートを使用するには IsThreeState プロパティに True を設定します(既定値は False です)。

チェック状態にするにはIsChecked プロパティに Trueを、未チェック状態にするにはFalseを設定します。

3つめの「不確定状態」は、 XAML では{x:Null} を 、VB.NET では Nothingを、C#ではNull を設定します。

下記は3つのCheckBoxコントロールに、それぞれオン/オフ/不確定を設定する例です。

XAMLの例

<CheckBox Content="チェックオン" IsChecked="True" IsThreeState="True" />
<CheckBox Content="チェックオフ" IsChecked="False" IsThreeState="True" />
<CheckBox Content="不確定" IsChecked="{x:Null}" IsThreeState="True" />

VBの例

'3ステートを使用できるようにする
CheckBox1.IsThreeState = True
CheckBox2.IsThreeState = True
CheckBox3.IsThreeState = True

'それぞれのチェックボックスにオン、オフ、不確定を設定する
CheckBox1.IsChecked = True	'オン
CheckBox2.IsChecked = False	'オフ
CheckBox3.IsChecked = Nothing	'不確定

C#の例

//3ステートを使用できるようにする
checkBox1.IsThreeState = true;
checkBox2.IsThreeState = true;
checkBox3.IsThreeState = true;

//それぞれのチェックボックスにオン、オフ、不確定を設定する
checkBox1.IsChecked = true;	// オン
checkBox2.IsChecked = false;	// オフ
checkBox3.IsChecked = null;	// 不確定