もちろん、グループボックスには、ラジオボタンの他にもどんなコントロールをおいてもかまいません。
GroupBoxクラスの継承関係は、次のようになっています。
System.Object System.MarshalByRefObject System.ComponentModel.Component System.Windows.Forms.Control System.Windows.Forms.GroupBox使い方は、簡単です。他のコントロール類とほとんど同じ扱いです。
この章のサンプルでは、ラジオボタンのプロパティのAutoSizeも利用しています。 これは、ButtonBaseクラスのAutoSizeプロパティをオーバーライドしています。
public override bool AutoSize { get; set; }内容に合わせてコントロールのサイズを調整するときはtrue,そうでないときはfalseとなります。(C#2.0から追加になったメンバです)
では、サンプルを見てみましょう。
// groupbox01.cs using System; using System.Drawing; using System.Windows.Forms; class groupbox01 { static RadioButton rbmale, rbfemale; public static void Main() { MyForm myform = new MyForm(); rbmale = new RadioButton(); rbmale.Text = "男性"; rbmale.Location = new Point(20, 20); rbmale.AutoSize = true; rbmale.Checked = true; rbfemale = new RadioButton(); rbfemale.Text = "女性"; rbfemale.Location = new Point(20, 25 + rbmale.Height); rbfemale.AutoSize = true; GroupBox gb = new GroupBox(); gb.Text = "性別"; gb.Location = new Point(10, 10); gb.Width = rbmale.Width + 10; gb.Height = rbmale.Height * 2 + 30; Button btn = new Button(); btn.Text = "押す"; btn.Location = new Point(20, gb.Location.Y + gb.Height + 10); btn.BackColor = SystemColors.Control; btn.Click += new EventHandler(btn_Click); myform.Controls.Add(gb); gb.Controls.Add(rbmale); gb.Controls.Add(rbfemale); myform.Controls.Add(btn); Application.Run(myform); } static void btn_Click(Object sender, EventArgs e) { if (rbmale.Checked) MessageBox.Show("男性が選択されています", "猫でもわかるC#", MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show("女性が選択されています", "猫でもわかるC#", MessageBoxButtons.OK, MessageBoxIcon.Information); } } class MyForm : Form { public MyForm() { Text = "猫でもわかるC#プログラミング"; BackColor = SystemColors.Window; } }特に、どうということはないですね。実行結果は次のようになります。
「押す」ボタンを押すと、選択されている項目をメッセージボックスで表示します。
Update 20/Nov/2006 By Y.Kumei