【学習】WinFormsでチェックボックスを使ってみよう(複数選択)

広告

これまでの学習では、

  • ボタンを押す
  • ラベルに表示する

という形でプログラムを動かしてきました。

しかし、フォームにはもう一つの入力方法があります。

ユーザーが選ぶ

という仕組みです。チェックボックスやラジオボタンを使うと、選択肢から選んでもらう画面が作れます。

今回は CheckBox(チェックボックス) を使って、複数のオプションを選べるアプリを作ります。

今日作るもの

メール通知を受け取る にチェックを入れると

メール通知:ON

と表示されます。チェックを外すと OFF に変わります。

複数のチェックボックスを配置すれば、複数選択もできます。


ソリューションとプロジェクトを作る

Visual Studio で新しいプロジェクトを作ります。

  • テンプレート: Windows Forms アプリ (.NET Framework)
  • ソリューション名: SelectSample
  • プロジェクト名: CheckBoxDemo

作成すると Form1 が表示されます。


フォームに配置するコントロール

フォームに次のものを配置します。

コントロール名前
CheckBoxmailCheckBox
ButtonconfirmButton
LabelresultLabel

CheckBox の Text プロパティを「メール通知を受け取る」に設定します。


Checkedプロパティとは

チェックボックスには Checked というプロパティがあります。

  • mailCheckBox.Checked == true → チェックが入っている
  • mailCheckBox.Checked == false → チェックが外れている

この値を if 文で判定して、表示を変えます。


ボタンのイベントを登録する

confirmButton をダブルクリックすると confirmButton_Click イベントが作成されます。

ここで Checked の状態を確認して、Label に表示します。


完成コード

using System;
using System.Windows.Forms;

namespace SelectSample
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void confirmButton_Click(object sender, EventArgs e)
        {
            if (mailCheckBox.Checked)
            {
                resultLabel.Text = "メール通知:ON";
            }
            else
            {
                resultLabel.Text = "メール通知:OFF";
            }
        }
    }
}

プログラムの流れ

確認ボタンを押す
        ↓
mailCheckBox.Checked を判定
        ↓
true なら「ON」、false なら「OFF」
        ↓
resultLabel に表示

重要ポイント

チェックボックスは「複数選択できる」 入力です。

  • 複数の CheckBox を配置できる
  • それぞれ独立して ON/OFF を切り替えられる
  • Checked プロパティで状態を取得する

アンケート、設定画面、オプション選択などでよく使います。


発展:複数チェックボックス

複数の CheckBox を配置すると、トッピング選択やオプション選択が作れます。

string options = "";
if (option1CheckBox.Checked) options += "オプション1 ";
if (option2CheckBox.Checked) options += "オプション2 ";
resultLabel.Text = options;

発展アイデア

チェックボックスを使うと次のようなものも作れます。

  • アンケートフォーム(複数回答可)
  • 設定画面(機能のON/OFF)
  • トッピング選択
  • 同意確認(チェックしないと次へ進めない)

チェックボックスは選択UIの基本の一つです。

訪問数 3 回, 今日の訪問数 3回

広告