ユーザー選択の取得 : チェック ボックスとオプション ボタンを使用する
更新 : 2007 年 11 月
このレッスンでは、チェック ボックスとオプション ボタンを使用して、ユーザーの選択項目を提示および取得する方法を説明します。
プログラムのユーザー インターフェイスを作成するときに、選択項目を提示する必要が生じることがよくあります。たとえば、ピザ レストラン向けの受注アプリケーションを記述するとします。この場合は、ユーザーがさまざまなトッピングをいくつでも選べるようした方がよいでしょう。CheckBox コントロールは、このオプションを簡単に作成できるようにするビジュアル表示を提供します。
CheckBox コントロールは、テキスト ラベルと、ユーザーが選択できるボックスで構成されます。ユーザーがボックスをクリックすると、ボックス内にチェック マークが表示されます。ボックスを再度クリックすると、チェック マークは消えます。チェック ボックスの状態を取得するには、CheckBox.Checked プロパティを使用します。ボックスにチェック マークが表示されている場合は、このプロパティは True を返します。チェック マークが表示されていない場合は、このプロパティは False を返します。
やってみよう
チェック ボックスを使用するには
[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
[新しいプロジェクト] ダイアログ ボックスの [テンプレート] ペインで、[Windows アプリケーション] をクリックします。
[プロジェクト名] ボックスに「UserChoices」と入力し、[OK] をクリックします。
新しい Windows フォーム プロジェクトが開きます。
ツールボックスから、フォームに 1 つの Button コントロールと 3 つの CheckBox コントロールをドラッグします。
[プロパティ] ウィンドウで、Checkbox1、Checkbox2、および Checkbox3 の Text プロパティを、それぞれ「Cheese」、「Peppers」、「Mushrooms」に変更します。
[プロパティ] ウィンドウで、Button1 の Text プロパティを「Order Pizza」に変更します。
フォームのボタンをダブルクリックします。Button1_Click イベント ハンドラがコード エディタで開きます。
Button1_Click イベント ハンドラに次のコードを追加します。
Dim toppings As String = "" If CheckBox1.Checked = True Then toppings &= "Cheese " End If If CheckBox2.Checked = True Then toppings &= "Peppers " End If If CheckBox3.Checked = True Then toppings &= "Mushrooms" End If If toppings <> "" Then MsgBox("Your pizza has the following toppings: " & toppings) End If
F5 キーを押してプログラムを実行します。フォームが表示されたら、いくつかのトッピングを選択してボタンをクリックします。選択したピザのトッピングを示すメッセージ ボックスが表示されます。
オプション ボタンを使用して排他的選択を行う
ここまでは、ユーザーが複数の選択肢をいくつでも選べるようにする方法を説明しました。しかし、複数の選択肢のうち 1 つだけを選んでもらう必要がある場合はどうすればよいでしょうか。この場合は、RadioButton コントロールを使用します。
オプション ボタンは、チェック ボックスと異なり、常にグループの一部として機能します。1 つのオプション ボタンを選択すると、グループに含まれる他のすべてのオプション ボタンは直ちにオフになります。オプション ボタンのグループは、"内部で 1 つだけ選択できる選択項目のセット" と定義されます。
RadioButton コントロールのグループを使用すると、ユーザーは排他的オプションから選択することになります。たとえば、ピザのソースとして、通常のソースかスパイシー ソースのどちらかを選択できるが、両方は選択できないようにする場合が考えられます。CheckBoxコントロールと同様、RadioButton コントロールの状態に関する情報も、RadioButton.Checked プロパティから取得できます。
オプション ボタンを使用するには
ツールボックスから、フォームに 2 つの RadioButton コントロールをドラッグします。
[プロパティ] ウィンドウで、RadioButton1の Text プロパティを「RegularSauce」に変更します。
RadioButton1 の Checked プロパティを True に設定します。
ヒント : 選択項目のグループを定義するときは、常に 1 つの選択項目を既定として設定する必要があります。
[プロパティ] ウィンドウで、RadioButton2 の Text プロパティを「Spicy Sauce」に変更します。
フォームのボタンをダブルクリックして、Button1_Click イベント ハンドラをコード エディタで開きます。
Button1_Click イベント ハンドラに次のコードを追加します。
If RadioButton1.Checked = True Then MsgBox("You chose regular sauce") Else MsgBox("You chose spicy sauce") End If
F5 キーを押してプログラムを実行します。オプション ボタンのうち 1 つをオンにし、[Order Pizza] をクリックします。選択した項目を示すメッセージ ボックスが表示されます。
両方のオプション ボタンを同時にオンにしようとしてみてください。オプション ボタンは排他的です。一方をオンにすると、もう一方は自動的にオフになります。
次の手順
このレッスンでは、CheckBox コントロールと RadioButton コントロールを使用して、ユーザー インターフェイスでユーザーに選択項目を提示する方法を説明しました。この時点で、次のレッスン (「イメージの表示 : PictureBox コントロールの使用」) に進むか、「詳細情報 : 複数グループのオプション ボタンを使用する」でオプション ボタンの複数のグループを作成する方法を学習するかのいずれかを選択できます。後者を選択する場合は、次のレッスンで使用するために UserChoices プロジェクトを保存する必要があります。