Radio Button

Radio Button の説明です。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. "赤", "白", "黄" のラジオボタンを張り付けて、色を選択します。
    次のソースプログラムをプロジェクトのフォルダーに格納して下さい。
    プロジェクトの作成は Form を作成する を参照して下さい。
    自動生成のプロジェクトから構築するときは Radio Button & GroupBox を参照して下さい。
    /*****************************************/
    /*★ ラジオボタンで選択する    前田 稔 ★*/
    /*****************************************/
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    
    public class MyForm : Form
    {
        Label label;
        RadioButton[] radioButton = new RadioButton[3];
    
        public MyForm()
        {
            label = new Label();
            label.AutoSize = true;
            label.Location = new Point(20, 150);
    
            string[] item = { "赤", "白", "黄" };
    
            for (int i = 0; i < 3; i++)
            {
                radioButton[i] = new RadioButton();
                radioButton[i].Text = item[i];
                radioButton[i].Left = 10;
                radioButton[i].Top = i * 22 + 18;
                radioButton[i].CheckedChanged +=
                    new EventHandler(radioButton_CheckedChanged);
            }
            radioButton[0].Checked = true;  // 最初は '赤' を選択
    
            this.Controls.Add(label);
            this.Controls.AddRange(radioButton);
        }
    
        // 選択項目が変更されたときのイベントハンドラ
        void radioButton_CheckedChanged(object sender, EventArgs e)
        {
            RadioButton radioButton = sender as RadioButton;
            if (radioButton.Checked)
            {
                label.Text = string.Format("'{0}' が選択されました。",
                    radioButton.Text);
            }
        }
    }
    
    class form01
    {
        public static void Main()
        {
            MyForm mf = new MyForm();
            Application.Run(mf);
        }
    }
    
  2. ラジオボタンのイベントハンドラを設定します。
    ボタンごとに個々に設定することも出来るのですが、今回は共通のイベントハンドラを呼び出します。
    radioButton[i].CheckedChanged += new EventHandler(radioButton_CheckedChanged);
  3. イベントハンドラでは、radioButton の Text を取得して、ラベル(label)に表示します。
    複数個の radioButton から一個だけ選択することが出来ます。
        void radioButton_CheckedChanged(object sender, EventArgs e)
        {   RadioButton radioButton = sender as RadioButton;
            if (radioButton.Checked)
            {   label.Text = string.Format("'{0}' が選択されました。",
                    radioButton.Text);
            }
        }
    
  4. CheckedChanged イベントは、チェックしたときとチェックが外れたときの2パターンで発生します。
    従って、ボタンをクリックしたとき、2度呼ばれることがあるので注意が必要です。
    Click イベントを使うと、マウスのクリックで発生します。
    Click イベントは radioButton.Select() などで選択状態になったときにも発生するので留意して下さい。

超初心者のプログラム入門(C# Frame Work)