この記事では、Windowsフォームでのチェックボックスの使い方について解説します。

チェックボックスの使い方を知りたい!

チェック状態によって処理を変えたい!

不定状態があるチェックボックスを作りたい!
チェックボックスは、設定画面や利用規約の同意画面など、あらゆる場面で使用されています。
簡単な操作で使いやすいコントロールですので、しっかり実装方法を学んでいきましょう!
事前準備
チェックボックスのサンプル用に、以下のような画面を作成しました。

チェックボックス1つ、ボタン2つ、ラベル1つを適当に配置しています。
- Catチェックボックス(Name:checkBox1)
- 文字切替ボタン(Name:button1)
- チェック切替ボタン(Name:button2)
- Dogラベル(Name:label1)
この画面を使って、チェックボックスの動作を解説していきます。
Windowsフォームの作成やボタンの配置については、以下の記事を参考にしてください!
画面が準備できたら、実際の処理をサンプルコードで見ていきましょう。
サンプル&詳細解説
チェック状態を見て処理を切り替える
まず、「文字切替」ボタンのクリックイベントを実装してみましょう。
以下のような仕様でボタンの処理を作っていきます。
- 「文字切替」ボタン(button1)を押すと、「Cat」チェックボックスのチェック状態に応じてラベルのテキストを切り替える。
- ONならラベルを「Cat」にする
- OFFならラベルを「Dog」にする
サンプルコード
// button1のクリックイベント
private void button1_Click(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
label1.Text = "Cat";
}
else
{
label1.Text = "Dog";
}
}
実行結果

「Cat」をONにした状態で「文字切替」を押すと、ラベルの内容が「Dog」から「Cat」に切り替わりました。
チェックボックスは、Checkedプロパティで現在のチェック状態を取得できます。
trueならチェックON、falseならチェックOFFです。
プログラムからチェック状態を切り替える
「チェック切替」ボタンのクリックイベントは、以下の仕様で作成します。
- ボタンを押すごとにチェック状態を切り替える。
サンプルコード
// button2のクリックイベント
private void button2_Click(object sender, EventArgs e)
{
checkBox1.Checked = !checkBox1.Checked;
}
実行結果

「チェック切替」ボタンを押すと、OFFだった「Cat」チェックボックスがONに切り替わりました。
チェックボックスのCheckedプロパティを書き換えると、チェック状態のON/OFFを切り替えられます。
チェックボックスの切り替えイベント
次は、チェックボックスのチェック状態が切り替わった時にイベントを発生させてみましょう。
フォーム画面上のチェックボックスをダブルクリックすると、チェックボックスのCheckedChangedイベントがコード上に自動生成されます。

CheckedChangedイベントは、チェックボックスのON/OFFが切り替わった時に発生します。
処理内容は、「文字切替」ボタンと同じにします。
サンプルコード
// checkbox1のチェック状態切替イベント
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
label1.Text = "Cat";
}
else
{
label1.Text = "Dog";
}
}
実行結果

チェックボックスを切り替えたら、ラベルの内容も切り替わるようになりました。
チェックボックスにはClickイベントも存在します。
ClickイベントとCheckedChangedイベントはよく似ていますが、1点大きな違いがあります。
それは、Clickイベントはプログラムからのチェック状態書き換えには反応しない点です。
画面上のクリックやEnterキーによる切り替えでのみメソッドがコールされます。
一方、CheckedChangedイベントは画面上のクリックとプログラムでの書き換えどちらでもイベントが発生します。
3つの状態を持つチェックボックス
チェックボックスのThreeStateプロパティをONにすると、チェックボックスがON/OFF/不定の3つの状態を持つようになります。
ThreeStateプロパティは、プロパティ画面から変更するか、プログラムから書き換えます。

checkBox1.ThreeState = true;
ThreeState時のチェック状態(CheckStateプロパティ)
ThreeStateをtrueにした場合、チェック状態はCheckStateプロパティから取得できます。
チェック状態 | CheckStateプロパティ |
---|---|
チェックON | Checked |
チェックOFF | Unchecked |
不定 | Indeterminate |
ThreeState時のCheckedプロパティ
ちなみに、ThreeStateがtrueの時のCheckedプロパティは、以下のように機能します。
チェック状態 | Checkedプロパティ |
---|---|
チェックON | true |
チェックOFF | false |
不定 | true |
まとめ
以下は当記事のまとめです!
- チェックボックスのON/OFF状態はCheckedプロパティから取得できる
- Checkedプロパティを書き換えれば、画面上のチェック状態を変更できる
- ThreeStateプロパティをONにすると、3状態をもつチェックボックスを作れる
以上です!
当ブログでは他にも様々なC#関連記事を掲載していますので、ぜひご一読ください!
サンプルコードも多数掲載しています!
コメント