方法 : ダイアログ ボックスを閉じて、ユーザー入力を保持する

ダイアログ ボックスを閉じる方法はデザイン時または実行時に設定できます。 デザイン時には、ダイアログ ボックス上のすべての Button コントロールに対して DialogResult プロパティを設定できます。 実行時には、ユーザーの応答を動的に処理できるように DialogResult プロパティを設定できます。

注意

実際に画面に表示されるダイアログ ボックスとメニュー コマンドは、アクティブな設定またはエディションによっては、ヘルプの説明と異なる場合があります。 設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。 詳細については、「設定の操作」を参照してください。

デザイン時にコントロールに DialogResult プロパティを設定するには

  1. プロパティを設定する Button コントロールをクリックします。

  2. [プロパティ] ウィンドウの DialogResult プロパティをクリックして、使用できるプロパティの設定値の一覧を表示します。

  3. ダイアログ ボックスを閉じた "結果" として適切な動作を選択します。

    Button コントロールをクリックする以外のユーザー アクションでダイアログ ボックスを閉じる場合についても、その "結果" の動作を設定できます。 ダイアログ ボックスに、ダイアログ ボックスを閉じるボタンが含まれていない場合は、ダイアログ ボックスを閉じた後に生じるアクションを実行時に設定できます。

プログラムによって、コントロールまたはフォームに DialogResult プロパティを設定するには

  1. DialogResult プロパティを設定するイベント ハンドラーまたはメソッドに移動します。

  2. 以下のコード例のようなコードを作成します。

    Public Sub InformationProcessed()
       ' This code will set the DialogResult for a form.
       Me.DialogResult = DialogResult.Yes
       ' OR
       ' This code will set the DialogResult for a button.
       Button1.DialogResult = DialogResult.No
    End Sub
    
    private void InformationProcessed() 
    {
       // This code will set the DialogResult for a form.
       DialogResult = DialogResult.Yes;
       // OR
       // This code will set the DialogResult for a button.
       button1.DialogResult = DialogResult.No;
    }
    
    private:
       void InformationProcessed()
       {
          // This code will set the DialogResult for a form.
          this->DialogResult = DialogResult::Yes;
          // OR
          // This code will set the DialogResult for a button.
          button1->DialogResult = DialogResult::No;
       }
    

    DialogResult プロパティを設定すると、ダイアログ ボックスは自動的に閉じます。ただし、この場合でも、コントロールの Click イベントを処理して、イベント ハンドラーのコードが終了してからダイアログ ボックスが閉じるように設定できます。 Click イベントを処理する間は、ダイアログ ボックスが閉じないように設定できます。

DialogResult プロパティによってダイアログ ボックスが閉じられないように設定するには

  • イベント ハンドラー内で、次のコード例のようなコードを作成します。

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
       Me.DialogResult = DialogResult.None
    End Sub
    
    private void button1_Click(object sender, System.EventArgs e) 
    {
       DialogResult = DialogResult.None;
    }
    
    private:
       void button1_Click(System::Object ^ sender,
          System::EventArgs ^ e) 
       {
          this->DialogResult = DialogResult::None;
       }
    

    注意

    フォームの Closing イベントを使用して、ダイアログ ボックスを閉じるのを中止することもできます。

参照

処理手順

方法 : デザイン時にダイアログ ボックスを作成する

方法 : ダイアログ ボックスの結果を取得する

概念

ダイアログ ボックスへのユーザー入力

その他の技術情報

Windows フォームのダイアログ ボックス