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. 이 대화 상자에는 폼에 있는 ButtonDialogResult 속성에 할당 하거나 코드에서 양식의 DialogResult 속성을 설정 하 여 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. 모달이 아닌 폼과 달리 Close 메서드는 사용자가 대화 상자의 닫기 단추를 클릭 하거나 DialogResult 속성의 값을 설정 하는 경우 .NET Framework에서 호출 되지 않습니다.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. 호출 해야 양식 대신 닫힌 하는 대화 상자는 숨겨진 것으로 표시 된 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. 특정 소유자를 지정 하려는 경우이 메서드의 다른 버전을 사용 합니다.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 값 중 하나입니다.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. 이 대화 상자에는 폼에 있는 ButtonDialogResult 속성에 할당 하거나 코드에서 양식의 DialogResult 속성을 설정 하 여 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. 호출 해야 양식 대신 닫힌 하는 대화 상자는 숨겨진 것으로 표시 된 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.

추가 정보

적용 대상