方法 : ダイアログ ボックスからデータを取得する

更新 : 2007 年 11 月

ダイアログ ボックスを使用すると、プログラムはユーザーと対話し、アプリケーションで使用するためにユーザーがダイアログ ボックスで入力したデータを取得することができます。アプリケーションで使用できる組み込みダイアログ ボックスがいくつかあります。詳細については、「アプリケーションでの組み込みダイアログ ボックスの使用」を参照してください。独自のダイアログ ボックスを作成することもできます。

Windows フォーム開発で実行する一般的なタスクは、ユーザーがアプリケーションのメイン フォーム上のボタンをクリックしたときに、ダイアログ ボックスを表示して情報を収集することです。Visual C# Express Edition IDE におけるこうしたアプリケーションの例を見てみましょう。Visual C# Express EditionListBox コントロールをフォームに追加するとき、[プロパティ] ウィンドウの [Items] プロパティをクリックするとダイアログ ボックスを表示できます。このダイアログ ボックスを使用すると、テキスト ボックスの別々の行にテキストを簡単に入力できます。[OK] をクリックすると、アプリケーションはテキストの各行を ListBox コントロールに追加します。ユーザーに、アプリケーションのリスト ボックスに独自の項目を追加させる場合は、独自のストリング エディタ ダイアログ ボックスを作成することができます。

アプリケーションのメイン フォームを作成するには

  1. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。

    [新しいプロジェクト] ダイアログ ボックスが表示されます。

  2. [Windows フォーム アプリケーション] をクリックし、[OK] をクリックします。

    Form1 というフォームがプロジェクトに追加されます。

  3. [ツールボックス] から ListBox コントロールをフォームにドラッグし、[プロパティ] ウィンドウで次のプロパティを変更します。

    プロパティ

    修飾子

    Public

  4. フォームに Button コントロールを追加し、[プロパティ] ウィンドウで次のプロパティを変更します。

    プロパティ

    Name

    addItems

    Text

    Add

ダイアログ ボックスを作成するには

  1. [プロジェクト] メニューの [Windows フォームの追加] をクリックし、既定の名前 Form2 をそのままにします。次に、[追加] をクリックします。

  2. [ツールボックス] から Label コントロールをフォームにドラッグし、Text プロパティを Enter the String (one per line) に変更します。

  3. フォームに TextBox コントロールを追加し、[プロパティ] ウィンドウで次のプロパティを変更します。

    プロパティ

    Multiline

    True

    Scrollbars

    [両方]

    Size

    255, 160

  4. フォームに Button コントロールを追加し、[プロパティ] ウィンドウで次のプロパティを変更します。

    プロパティ

    Name

    okButton

    Text

    OK

ダイアログ ボックスからのデータの取得

1 つの Windows フォームから別のフォームにデータを渡す方法はいくつかあります。この例では、Form1 を Form2 のコンストラクタに渡します。

ダイアログ ボックスからデータを取得するには

  1. [OK] ボタンをダブルクリックして、既定の Click イベント ハンドラを作成します。

    このプロシージャにコードを追加する前に、メイン フォームの変数を作成し、Form2 クラスの新しいコンストラクタを作成する必要があります。

  2. 既定のコンストラクタの後に以下のコードを追加します。このコードは、パラメータとして Form1 を必要とするオーバーロードされたコンストラクタを作成します。

    Form1 mainForm;
    
    public Form2(Form1 mainForm)
    {
        this.mainForm = mainForm;
        InitializeComponent();
    
    }
    
  3. 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();
    
  4. ソリューション エクスプローラで Form1 を右クリックし、[デザイナの表示] をクリックします。

  5. [Add] ボタンをダブルクリックして既定の Click イベント ハンドラを追加し、次のコードを追加して、Form2 のインスタンスを作成し、フォームを表示します。

    Form2 subForm = new Form2(this);
    subForm.Show();
    
  6. F5 キーを押してコードを実行します。

  7. フォームが開いたら、[Add] をクリックします。

  8. ダイアログ ボックスが開いたら、次の色のリストを入力し、各単語の後ろで Enter キーを押します。

    Blue

    Green

    Yellow

    Red

  9. [OK] をクリックします。

  10. ダイアログ ボックスで入力したデータが Form1 のリスト ボックスに表示されていることを確認します。

  11. アプリケーションを閉じます。

参照

概念

アプリケーションでの組み込みダイアログ ボックスの使用

ユーザー インターフェイスのデザイン (Visual C#)

その他の技術情報

ダイアログ ボックス (Visual C#)

Visual C# ガイド ツアー