更新 : 2007 年 11 月
ダイアログ ボックスを使用すると、プログラムはユーザーと対話し、アプリケーションで使用するためにユーザーがダイアログ ボックスで入力したデータを取得することができます。アプリケーションで使用できる組み込みダイアログ ボックスがいくつかあります。詳細については、「アプリケーションでの組み込みダイアログ ボックスの使用」を参照してください。独自のダイアログ ボックスを作成することもできます。
Windows フォーム開発で実行する一般的なタスクは、ユーザーがアプリケーションのメイン フォーム上のボタンをクリックしたときに、ダイアログ ボックスを表示して情報を収集することです。Visual C# Express Edition IDE におけるこうしたアプリケーションの例を見てみましょう。Visual C# Express EditionListBox コントロールをフォームに追加するとき、[プロパティ] ウィンドウの [Items] プロパティをクリックするとダイアログ ボックスを表示できます。このダイアログ ボックスを使用すると、テキスト ボックスの別々の行にテキストを簡単に入力できます。[OK] をクリックすると、アプリケーションはテキストの各行を ListBox コントロールに追加します。ユーザーに、アプリケーションのリスト ボックスに独自の項目を追加させる場合は、独自のストリング エディタ ダイアログ ボックスを作成することができます。
アプリケーションのメイン フォームを作成するには
[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
[新しいプロジェクト] ダイアログ ボックスが表示されます。
[Windows フォーム アプリケーション] をクリックし、[OK] をクリックします。
Form1 というフォームがプロジェクトに追加されます。
[ツールボックス] から ListBox コントロールをフォームにドラッグし、[プロパティ] ウィンドウで次のプロパティを変更します。
プロパティ
値
修飾子
Public
フォームに Button コントロールを追加し、[プロパティ] ウィンドウで次のプロパティを変更します。
プロパティ
値
Name
addItems
Text
Add
ダイアログ ボックスを作成するには
[プロジェクト] メニューの [Windows フォームの追加] をクリックし、既定の名前 Form2 をそのままにします。次に、[追加] をクリックします。
[ツールボックス] から Label コントロールをフォームにドラッグし、Text プロパティを Enter the String (one per line) に変更します。
フォームに TextBox コントロールを追加し、[プロパティ] ウィンドウで次のプロパティを変更します。
プロパティ
値
Multiline
True
Scrollbars
[両方]
Size
255, 160
フォームに Button コントロールを追加し、[プロパティ] ウィンドウで次のプロパティを変更します。
プロパティ
値
Name
okButton
Text
OK
ダイアログ ボックスからのデータの取得
1 つの Windows フォームから別のフォームにデータを渡す方法はいくつかあります。この例では、Form1 を Form2 のコンストラクタに渡します。
ダイアログ ボックスからデータを取得するには
[OK] ボタンをダブルクリックして、既定の Click イベント ハンドラを作成します。
このプロシージャにコードを追加する前に、メイン フォームの変数を作成し、Form2 クラスの新しいコンストラクタを作成する必要があります。
既定のコンストラクタの後に以下のコードを追加します。このコードは、パラメータとして Form1 を必要とするオーバーロードされたコンストラクタを作成します。
Form1 mainForm; public Form2(Form1 mainForm) { this.mainForm = mainForm; InitializeComponent(); }okButton の Click イベント ハンドラに、次のコードを追加します。このコードは、リスト ボックス内の既存のテキストをすべてクリアし、Form2 上のテキスト ボックスのテキストの各行を配列に代入してから、配列の各項目を Form1 上のリスト ボックスに追加します。
if (this.textBox1.Text != string.Empty) { mainForm.listBox1.Items.Clear(); string[] stringsEntered = textBox1.Lines; for (int count = 0; count < stringsEntered.Length; count++) { mainForm.listBox1.Items.Add(stringsEntered[count]); } } this.Close();ソリューション エクスプローラで Form1 を右クリックし、[デザイナの表示] をクリックします。
[Add] ボタンをダブルクリックして既定の Click イベント ハンドラを追加し、次のコードを追加して、Form2 のインスタンスを作成し、フォームを表示します。
Form2 subForm = new Form2(this); subForm.Show();F5 キーを押してコードを実行します。
フォームが開いたら、[Add] をクリックします。
ダイアログ ボックスが開いたら、次の色のリストを入力し、各単語の後ろで Enter キーを押します。
Blue
Green
Yellow
Red
[OK] をクリックします。
ダイアログ ボックスで入力したデータが Form1 のリスト ボックスに表示されていることを確認します。
アプリケーションを閉じます。
参照
概念
ユーザー インターフェイスのデザイン (Visual C#)