Categories: Cシャープ

C#でチェックボックスを使う方法をわかりやすく解説!

C#を使ってWindowsフォームアプリケーションを開発する際に、チェックボックスは非常によく使われるUI要素です。
複数の選択肢をユーザーに提示したり、オン/オフの状態を保持させたりといった用途に適しています。
本記事では、C#でのチェックボックスの基本的な使い方から、実用的なサンプルコードまで、初心者の方にもわかりやすく解説します。

実際のアプリケーション作成をイメージしながら学べる内容となっていますので、ぜひ参考にしてみてください。


チェックボックスとは?基本の仕組み

チェックボックス(CheckBox)は、オン(チェックあり)かオフ(チェックなし)の2つの状態を持つコントロールです。
Windowsフォームアプリケーションでは、フォームに配置することで、ユーザーに選択肢を与えることができます。

主な特徴

  • 複数選択が可能(ラジオボタンとの違い)
  • Checkedプロパティで状態を確認可能
  • イベントハンドラーで状態変更を検知可能

チェックボックスは「はい/いいえ」や「このオプションを有効にする」といった使い方に最適です。


チェックボックスの追加と基本設定

Visual Studioのフォームデザイナーを使って、ドラッグ&ドロップでチェックボックスをフォームに追加できます。
追加後は、プロパティウィンドウで以下の設定が可能です。

  • Name:CheckBox1など、後からコードでアクセスするための名前
  • Text:チェックボックスに表示されるテキスト
  • Checked:初期状態でチェックが入っているかどうか

例:チェックボックスをコードで追加

CheckBox checkBox1 = new CheckBox();
checkBox1.Text = "利用規約に同意する";
checkBox1.Location = new Point(30, 30);
this.Controls.Add(checkBox1);

このコードを使うと、フォーム上の任意の場所にチェックボックスを表示できます。


チェックボックスの状態を取得する方法

チェックボックスがチェックされているかどうかを調べるには、Checkedプロパティを使います。

if (checkBox1.Checked)
{
MessageBox.Show("チェックされています。");
}
else
{
MessageBox.Show("チェックされていません。");
}

Checkedbool型なので、trueまたはfalseの値を返します。


チェックボックスの状態変更を検知するイベント

ユーザーがチェックボックスの状態を変更したときに何か処理をしたい場合は、CheckedChangedイベントを使います。

記述例:

checkBox1.CheckedChanged += new EventHandler(CheckBox1_CheckedChanged);

private void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
Console.WriteLine("チェックされました。");
}
else
{
Console.WriteLine("チェックが外れました。");
}
}

このイベントはチェックのオン・オフが切り替わるたびに呼び出されます。


複数のチェックボックスを使うときの工夫

複数のチェックボックスを並べて、ユーザーに複数の選択肢を提示するケースも多いです。
例えば、「趣味を選んでください」という設問に対して、以下のように実装できます。

例:

CheckBox cb1 = new CheckBox { Text = "読書", Location = new Point(20, 20) };
CheckBox cb2 = new CheckBox { Text = "音楽", Location = new Point(20, 50) };
CheckBox cb3 = new CheckBox { Text = "運動", Location = new Point(20, 80) };

this.Controls.Add(cb1);
this.Controls.Add(cb2);
this.Controls.Add(cb3);

選ばれた趣味を表示するボタンを用意して、それぞれのCheckedを確認することで、柔軟な処理が可能です。


チェックボックスとボタンを組み合わせたサンプルアプリ

以下は、チェックボックスで選択された内容をボタンで表示する簡単なサンプルアプリです。

フォーム上の構成

  • チェックボックス3個(「A社製品を購入」「B社製品を購入」「C社製品を購入」)
  • ボタン1個(「購入内容を確認」)

サンプルコード:

private void button1_Click(object sender, EventArgs e)
{
string message = "選択された商品:\n";

if (checkBoxA.Checked) message += "- A社製品\n";
if (checkBoxB.Checked) message += "- B社製品\n";
if (checkBoxC.Checked) message += "- C社製品\n";

if (!checkBoxA.Checked && !checkBoxB.Checked && !checkBoxC.Checked)
{
message = "何も選択されていません。";
}

MessageBox.Show(message, "確認");
}

このように、チェックボックスの組み合わせによって動的な処理が簡単に実現できます。


チェックボックスの応用テクニック

全選択・全解除ボタン

複数のチェックボックスがある場合、「すべて選択」「すべて解除」ボタンを設置することで利便性が向上します。

private void SelectAllCheckBoxes(bool isChecked)
{
foreach (Control ctrl in this.Controls)
{
if (ctrl is CheckBox)
{
((CheckBox)ctrl).Checked = isChecked;
}
}
}

このメソッドを呼び出すことで、全てのチェックボックスの状態をまとめて変更できます。


よくあるエラーと対処法

「Object reference not set to an instance of an object.」

チェックボックスを参照する前にnullチェックを忘れている場合に起こります。
対策:フォームのInitializeComponent後に処理する/nullチェックを行う。

if (checkBox1 != null && checkBox1.Checked)
{
// 安全なアクセス
}

まとめ

チェックボックスは、C#でWindowsフォームアプリケーションを作成する上で欠かせないUI部品です。
CheckedプロパティとCheckedChangedイベントを組み合わせることで、柔軟なインタラクションが可能になります。

初心者の方はまず一つのチェックボックスからはじめ、複数チェックや一括操作など応用テクニックに挑戦してみましょう。
この記事が、あなたのC#開発の一助になれば幸いです。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。