Form.ShowDialog メソッド

定義

フォームをモーダル ダイアログ ボックスとして表示します。Shows the form as a modal dialog box.

オーバーロード

ShowDialog()

フォームをモーダル ダイアログ ボックスとして表示します。Shows the form as a modal dialog box.

ShowDialog(IWin32Window)

指定した所有者を持つモーダル ダイアログ ボックスとしてフォームを表示します。Shows the form as a modal dialog box with the specified owner.

ShowDialog()

フォームをモーダル ダイアログ ボックスとして表示します。Shows the form as a modal dialog box.

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 値のいずれか。One of the DialogResult values.

例外

表示しようとしているフォームが既に表示されています。The form being shown is already visible.

- または --or- 表示しようとしているフォームが無効です。The form being shown is disabled.

- または --or- 表示しようとしているフォームがトップレベル ウィンドウではありません。The form being shown is not a top-level window.

- または --or- ダイアログ ボックスとして表示しようとしているフォームが既にモーダル フォームです。The form being shown as a dialog box is already a modal form.

- または --or- 現在のプロセスがユーザー対話モードで実行されていません (詳細については、UserInteractive のトピックを参照してください)。The current process is not running in user interactive mode (for more information, see UserInteractive).

次の例では、フォームをモーダルダイアログボックスとして表示し、ダイアログボックスフォームの TextBox コントロールの値を読み取るかどうかを決定する前に、ダイアログボックスの戻り値を評価します。The following example displays a form as a modal dialog box and evaluates the return value of the dialog box before determining whether to read the value of a TextBox control on the dialog box form. この例では、testDialog という名前の Form が作成され、TextBox1という名前の TextBox コントロールが含まれている必要があります。This example requires that a Form named testDialog is created and that it contains a TextBox control named TextBox1. さらに、この例では、testDialog をモーダルダイアログボックスとして表示するために、この例のコードが含まれており、別の Form から呼び出されていることが必要です。Furthermore, the example requires that code in this example is contained and called from a different Form in order to display testDialog as a modal dialog box. この例では、ダイアログボックスの所有者を指定する ShowDialog のバージョンを使用します。The example uses the version of ShowDialog that specifies an owner for the dialog box.

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

注釈

このメソッドを使用すると、アプリケーションにモーダルダイアログボックスを表示できます。You can use this method to display a modal dialog box in your application. このメソッドが呼び出されると、ダイアログボックスが閉じられるまで、その後のコードは実行されません。When this method is called, the code following it is not executed until after the dialog box is closed. このダイアログボックスには DialogResult 列挙型の値の1つを割り当てることができます。そのためには、フォームの ButtonDialogResult プロパティに割り当てるか、コードでフォームの DialogResult プロパティを設定します。The dialog box can be assigned one of the values of the DialogResult enumeration by assigning it to the DialogResult property of a Button on the form or by setting the DialogResult property of the form in code. この値は、このメソッドによって返されます。This value is then returned by this method. この戻り値を使用して、ダイアログボックスで発生したアクションをどのように処理するかを決定できます。You can use this return value to determine how to process the actions that occurred in the dialog box. たとえば、ダイアログボックスが閉じられ、このメソッドによって DialogResult.Cancel 値が返された場合、呼び出し ShowDialog に続くコードが実行されないようにすることができます。For example, if the dialog box was closed and returned the DialogResult.Cancel value through this method, you could prevent code following the call to ShowDialog from executing.

フォームがモーダルダイアログボックスとして表示されている場合、閉じるボタン (フォームの右上隅にある [X]) をクリックすると、フォームが非表示になり、DialogResult プロパティが DialogResult.Cancel に設定されます。When a form is displayed as a modal dialog box, clicking the Close button (the button with an X at the upper-right corner of the form) causes the form to be hidden and the DialogResult property to be set to DialogResult.Cancel. 非モーダルフォームとは異なり、ユーザーがダイアログボックスの [フォームを閉じる] ボタンをクリックしたとき、または DialogResult プロパティの値を設定したときに、.NET Framework によって Close メソッドは呼び出されません。Unlike non-modal forms, the Close method is not called by the .NET Framework when the user clicks the close form button of a dialog box or sets the value of the DialogResult property. 代わりに、フォームは非表示になり、ダイアログボックスの新しいインスタンスを作成せずに再び表示できます。Instead the form is hidden and can be shown again without creating a new instance of the dialog box. ダイアログボックスとして表示されるフォームは、closed ではなく非表示になるため、アプリケーションでフォームが不要になったときに、フォームの Dispose メソッドを呼び出す必要があります。Because a form displayed as a dialog box is hidden instead of closed, you must call the Dispose method of the form when the form is no longer needed by your application.

このバージョンの ShowDialog メソッドでは、フォームまたはコントロールが所有者として指定されていません。This version of the ShowDialog method does not specify a form or control as its owner. このバージョンが呼び出されると、現在アクティブなウィンドウがダイアログボックスの所有者になります。When this version is called, the currently active window is made the owner of the dialog box. 特定の所有者を指定する場合は、このメソッドのもう1つのバージョンを使用します。If you want to specify a specific owner, use the other version of this method.

こちらもご覧ください

ShowDialog(IWin32Window)

指定した所有者を持つモーダル ダイアログ ボックスとしてフォームを表示します。Shows the form as a modal dialog box with the specified 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 を実装しているオブジェクト。Any object that implements IWin32Window that represents the top-level window that will own the modal dialog box.

戻り値

DialogResult 値のいずれか 1 つ。One of the DialogResult values.

例外

owner パラメーターで指定されたフォームが、表示しようとしているフォームと同じです。The form specified in the owner parameter is the same as the form being shown.

表示しようとしているフォームが既に表示されています。The form being shown is already visible.

- または --or- 表示しようとしているフォームが無効です。The form being shown is disabled.

- または --or- 表示しようとしているフォームがトップレベル ウィンドウではありません。The form being shown is not a top-level window.

- または --or- ダイアログ ボックスとして表示しようとしているフォームが既にモーダル フォームです。The form being shown as a dialog box is already a modal form.

- または --or- 現在のプロセスがユーザー対話モードで実行されていません (詳細については、UserInteractive のトピックを参照してください)。The current process is not running in user interactive mode (for more information, see UserInteractive).

次の例では、フォームをモーダルダイアログボックスとして表示し、ダイアログボックスフォームの TextBox コントロールの値を読み取るかどうかを決定する前に、ダイアログボックスの戻り値を評価します。The following example displays a form as a modal dialog box and evaluates the return value of the dialog box before determining whether to read the value of a TextBox control on the dialog box form. この例では、Form2 という名前の Form が作成され、TextBox1という名前の TextBox コントロールが含まれている必要があります。This example requires that a Form named Form2 is created and that it contains a TextBox control named TextBox1. この例では、ダイアログボックスの所有者を指定する ShowDialog のバージョンを使用します。The example uses the version of ShowDialog that specifies an owner for the dialog box.

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

注釈

このメソッドを使用すると、アプリケーションにモーダルダイアログボックスを表示できます。You can use this method to display a modal dialog box in your application. このメソッドが呼び出されると、ダイアログボックスが閉じられるまで、その後のコードは実行されません。When this method is called, the code following it is not executed until after the dialog box is closed. ダイアログボックスには DialogResult の値の1つを割り当てることができます。そのためには、フォームの ButtonDialogResult プロパティに割り当てるか、コードでフォームの DialogResult プロパティを設定します。The dialog box can be assigned one of the values of DialogResult by assigning it to the DialogResult property of a Button on the form or by setting the DialogResult property of the form in code. この値は、このメソッドによって返されます。This value is then returned by this method. この戻り値を使用して、ダイアログボックスで発生したアクションをどのように処理するかを決定できます。You can use this return value to determine how to process the actions that occurred in the dialog box. たとえば、ダイアログボックスが閉じられ、このメソッドによって DialogResult.Cancel 値が返された場合、呼び出し ShowDialog に続くコードが実行されないようにすることができます。For example, if the dialog box was closed and returned the DialogResult.Cancel value through this method, you could prevent code following the call to ShowDialog from executing.

フォームがモーダルダイアログボックスとして表示されている場合、閉じるボタン (フォームの右上隅にある [X]) をクリックすると、フォームが非表示になり、DialogResult プロパティが DialogResult.Cancel に設定されます。When a form is displayed as a modal dialog box, clicking the Close button (the button with an X at the upper-right corner of the form) causes the form to be hidden and the DialogResult property to be set to DialogResult.Cancel. モードレスフォームとは異なり、Close メソッドは、ユーザーがダイアログボックスの [フォームを閉じる] ボタンをクリックしたとき、または DialogResult プロパティの値を設定したときに .NET Framework によって呼び出されません。Unlike modeless forms, the Close method is not called by the .NET Framework when the user clicks the close form button of a dialog box or sets the value of the DialogResult property. 代わりに、フォームは非表示になり、ダイアログボックスの新しいインスタンスを作成せずに再び表示できます。Instead the form is hidden and can be shown again without creating a new instance of the dialog box. ダイアログボックスとして表示されるフォームは、closed ではなく非表示になるため、アプリケーションでフォームが不要になったときに、フォームの Dispose メソッドを呼び出す必要があります。Because a form displayed as a dialog box is hidden instead of closed, you must call the Dispose method of the form when the form is no longer needed by your application.

このバージョンの ShowDialog メソッドでは、表示されているダイアログボックスを所有する特定のフォームを指定できます。This version of the ShowDialog method allows you to specify a specific form that will own the dialog box that is shown.

こちらもご覧ください

適用対象