次の方法で共有


Form.ShowDialog メソッド

定義

フォームをモーダル ダイアログ ボックスとして表示します。

オーバーロード

ShowDialog()

フォームをモーダル ダイアログ ボックスとして表示します。

ShowDialog(IWin32Window)

指定した所有者を持つモーダル ダイアログ ボックスとしてフォームを表示します。

ShowDialog()

フォームをモーダル ダイアログ ボックスとして表示します。

public:
 System::Windows::Forms::DialogResult ShowDialog();
public System.Windows.Forms.DialogResult ShowDialog ();
member this.ShowDialog : unit -> System.Windows.Forms.DialogResult
Public Function ShowDialog () As DialogResult

戻り値

DialogResult

DialogResult 値のいずれか 1 つ。

例外

表示しようとしているフォームが既に表示されています。

  • または - 表示しようとしているフォームが無効です。

  • または - 表示しようとしているフォームがトップレベル ウィンドウではありません。

  • または - ダイアログ ボックスとして表示しようとしているフォームが既にモーダル フォームです。

  • または - 現在のプロセスがユーザー対話モードで実行されていません (詳細については、UserInteractive のトピックを参照してください)。

次の使用例は、フォームをモーダル ダイアログ ボックスとして表示し、ダイアログ ボックス フォームのコントロールの値を読み取るかどうかを決定する前に、ダイアログ ボックスの TextBox 戻り値を評価します。 この例では、名前がForm作成され、名前付きtestDialogコントロールTextBox1が含まれているTextBox必要があります。 さらに、この例では、モーダル ダイアログ ボックスとして表示testDialogするために、この例のコードを含め、別Formのコードから呼び出す必要があります。 この例では、ダイアログ ボックスの ShowDialog 所有者を指定するバージョンを使用します。

void ShowMyDialogBox()
{
   Form2^ testDialog = gcnew Form2;
   
   // Show testDialog as a modal dialog and determine if DialogResult = OK.
   if ( testDialog->ShowDialog( this ) == ::DialogResult::OK )
   {
      
      // Read the contents of testDialog's TextBox.
      this->txtResult->Text = testDialog->TextBox1->Text;
   }
   else
   {
      this->txtResult->Text = "Cancelled";
   }

   delete testDialog;
}
public void ShowMyDialogBox()
{
   Form2 testDialog = new Form2();

   // Show testDialog as a modal dialog and determine if DialogResult = OK.
   if (testDialog.ShowDialog(this) == DialogResult.OK)
   {
      // Read the contents of testDialog's TextBox.
      this.txtResult.Text = testDialog.TextBox1.Text;
   }
   else
   {
      this.txtResult.Text = "Cancelled";
   }
   testDialog.Dispose();
}
Public Sub ShowMyDialogBox()
    Dim testDialog As New Form2()
    
    ' Show testDialog as a modal dialog and determine if DialogResult = OK.
    If testDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK Then
        ' Read the contents of testDialog's TextBox.
        txtResult.Text = testDialog.TextBox1.Text
    Else
        txtResult.Text = "Cancelled"
    End If
    testDialog.Dispose()
End Sub

注釈

このメソッドを使用すると、アプリケーションにモーダル ダイアログ ボックスを表示できます。 このメソッドが呼び出されると、次のコードは、ダイアログ ボックスが閉じられるまで実行されません。 ダイアログ ボックスは、フォーム上の a のDialogResultプロパティに割り当てるか、コードでフォームのプロパティをDialogResult設定することで、列挙の値の 1 つを割DialogResultり当Buttonてることができます。 この値は、このメソッドによって返されます。 この戻り値を使用して、ダイアログ ボックスで発生したアクションを処理する方法を決定できます。 たとえば、ダイアログ ボックスが閉じられ、このメソッドを使用して値が DialogResult.Cancel 返された場合、呼び出し ShowDialog に続くコードが実行されないようにすることができます。

フォームがモーダル ダイアログ ボックスとして表示されている場合、[ 閉じる ] ボタン (フォームの右上隅に X があるボタン) をクリックすると、フォームが非表示になり、プロパティが DialogResult 設定 DialogResult.Cancelされます。 非モーダル フォームとは異なり、Closeユーザーがダイアログ ボックスの閉じるフォーム ボタンをクリックしたり、プロパティの値DialogResultを設定したりしても、メソッドは.NET Frameworkによって呼び出されません。 代わりに、フォームは非表示になり、ダイアログ ボックスの新しいインスタンスを作成せずに再度表示できます。 ダイアログ ボックスとして表示されるフォームは閉じるのではなく非表示になるため、フォームがアプリケーションで不要になった場合は、フォームのメソッドを呼び出す Dispose 必要があります。

このバージョンの ShowDialog メソッドでは、フォームまたはコントロールを所有者として指定しません。 このバージョンが呼び出されると、現在アクティブなウィンドウがダイアログ ボックスの所有者になります。 特定の所有者を指定する場合は、このメソッドの他のバージョンを使用します。

こちらもご覧ください

適用対象

ShowDialog(IWin32Window)

指定した所有者を持つモーダル ダイアログ ボックスとしてフォームを表示します。

public:
 System::Windows::Forms::DialogResult ShowDialog(System::Windows::Forms::IWin32Window ^ owner);
public System.Windows.Forms.DialogResult ShowDialog (System.Windows.Forms.IWin32Window owner);
public System.Windows.Forms.DialogResult ShowDialog (System.Windows.Forms.IWin32Window? owner);
member this.ShowDialog : System.Windows.Forms.IWin32Window -> System.Windows.Forms.DialogResult
Public Function ShowDialog (owner As IWin32Window) As DialogResult

パラメーター

owner
IWin32Window

モーダル ダイアログ ボックスを所有するトップレベル ウィンドウを表す IWin32Window を実装しているオブジェクト。

戻り値

DialogResult

DialogResult 値のいずれか 1 つ。

例外

owner パラメーターで指定されたフォームが、表示しようとしているフォームと同じです。

表示しようとしているフォームが既に表示されています。

  • または - 表示しようとしているフォームが無効です。

  • または - 表示しようとしているフォームがトップレベル ウィンドウではありません。

  • または - ダイアログ ボックスとして表示しようとしているフォームが既にモーダル フォームです。

  • または - 現在のプロセスがユーザー対話モードで実行されていません (詳細については、UserInteractive のトピックを参照してください)。

次の使用例は、フォームをモーダル ダイアログ ボックスとして表示し、ダイアログ ボックス フォームのコントロールの値を読み取るかどうかを決定する前に、ダイアログ ボックスの TextBox 戻り値を評価します。 この例では、名前がForm作成され、名前付きForm2コントロールTextBox1が含まれているTextBox必要があります。 この例では、ダイアログ ボックスの ShowDialog 所有者を指定するバージョンを使用します。

void ShowMyDialogBox()
{
   Form2^ testDialog = gcnew Form2;
   
   // Show testDialog as a modal dialog and determine if DialogResult = OK.
   if ( testDialog->ShowDialog( this ) == ::DialogResult::OK )
   {
      
      // Read the contents of testDialog's TextBox.
      this->txtResult->Text = testDialog->TextBox1->Text;
   }
   else
   {
      this->txtResult->Text = "Cancelled";
   }

   delete testDialog;
}
public void ShowMyDialogBox()
{
   Form2 testDialog = new Form2();

   // Show testDialog as a modal dialog and determine if DialogResult = OK.
   if (testDialog.ShowDialog(this) == DialogResult.OK)
   {
      // Read the contents of testDialog's TextBox.
      this.txtResult.Text = testDialog.TextBox1.Text;
   }
   else
   {
      this.txtResult.Text = "Cancelled";
   }
   testDialog.Dispose();
}
Public Sub ShowMyDialogBox()
    Dim testDialog As New Form2()
    
    ' Show testDialog as a modal dialog and determine if DialogResult = OK.
    If testDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK Then
        ' Read the contents of testDialog's TextBox.
        txtResult.Text = testDialog.TextBox1.Text
    Else
        txtResult.Text = "Cancelled"
    End If
    testDialog.Dispose()
End Sub

注釈

このメソッドを使用すると、アプリケーションにモーダル ダイアログ ボックスを表示できます。 このメソッドが呼び出されると、次のコードは、ダイアログ ボックスが閉じられるまで実行されません。 ダイアログ ボックスは、フォーム上の a の DialogResult プロパティに DialogResult 割り当てるか、コードでフォームの Button プロパティを設定 DialogResult することによって、いずれかの値を割り当てることができます。 この値は、このメソッドによって返されます。 この戻り値を使用して、ダイアログ ボックスで発生したアクションを処理する方法を決定できます。 たとえば、ダイアログ ボックスが閉じられ、このメソッドを使用して値が DialogResult.Cancel 返された場合、呼び出し ShowDialog に続くコードが実行されないようにすることができます。

フォームがモーダル ダイアログ ボックスとして表示されている場合、[ 閉じる ] ボタン (フォームの右上隅に X があるボタン) をクリックすると、フォームが非表示になり、プロパティが DialogResult 設定 DialogResult.Cancelされます。 モードレス フォームとは異なり、Closeユーザーがダイアログ ボックスの閉じるフォーム ボタンをクリックしたり、プロパティの値DialogResultを設定したりしても、メソッドは.NET Frameworkによって呼び出されません。 代わりに、フォームは非表示になり、ダイアログ ボックスの新しいインスタンスを作成せずに再度表示できます。 ダイアログ ボックスとして表示されるフォームは閉じるのではなく非表示になるため、フォームがアプリケーションで不要になった場合は、フォームのメソッドを呼び出す Dispose 必要があります。

このバージョンの ShowDialog メソッドを使用すると、表示されるダイアログ ボックスを所有する特定のフォームを指定できます。

こちらもご覧ください

適用対象