ラジオボタン
排他的なボタン
チェックボックスのように、事の真偽を示すコントロールは便利ですが
場合によって、それが排他的に行われる必要があるケースに遭遇します
つまり、複数の選択の中から1つのみを選択してほしい設定をユーザーにさせるときなどです
このような場合はラジオボタンを使うのが適当だと考えられます
ラジオボタンは System.Windows.Forms.RadioButton クラスで表されます
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.ButtonBase
System.Windows.Forms.RadioButton
public class RadioButton : ButtonBase
やはり、このクラスもデフォルトコンストラクタしか定義されていません
ラジオボタンは、チェックの管理のほかにグループの管理を行います
この点において、チェックボックスとラジオボタンは大きく違います
グループとは、同一のコンテナに含まれるラジオボタンの単位で考えられます
すなわち、親が同一のラジオボタンは同一のグループにあると言えます
グループ内のあるラジオボタンがチェックされると、他のボタンは全て解除されます
using System.Windows.Forms;
using System.Drawing;
class WinMain : Form {
public static void Main(string[] args) {
Application.Run(new WinMain());
}
public WinMain() {
RadioButton[] bt = new RadioButton[3];
string[] txt = {"Rena" , "Yuki" , "Mimi"};
for(int i = 0 ; i < bt.Length ; i++) {
bt[i] = new RadioButton();
bt[i].Bounds = new Rectangle(0 , 30 * i , 200 , 30);
bt[i].Text = txt[i];
Controls.Add(bt[i]);
}
}
}
このプログラムは、クライアント領域に3つのラジオボタンを配置します
これらのラジオボタンは同一のグループであると認識されるため
特定のボタンをチェックすると、他のボタンのチェックは自動的にはずされます