다음을 통해 공유


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 값 중 하나입니다.

예외

표시될 폼이 이미 표시되어 있는 경우

또는

표시될 폼을 사용할 수 없는 경우

또는

표시될 폼이 최상위 창이 아닌 경우

또는

대화 상자로 표시될 폼이 이미 모달 폼인 경우

또는

현재 프로세스가 사용자 대화형 모드에서 실행되고 있지 않은 경우. 자세한 내용은 UserInteractive를 참조하십시오.

예제

다음은 폼을 모달 대화 상자로 표시하고 대화 상자 폼의 컨트롤 값을 읽을지 여부를 결정하기 전에 대화 상자의 TextBox 반환 값을 평가하는 예제입니다. 이 예제에서는 명명 testDialog 된 를 Form 만들고 라는 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

설명

애플리케이션에서 모달 대화 상자를 표시 하려면이 메서드를 사용할 수 있습니다. 이 메서드가 호출되면 다음 코드는 대화 상자가 닫혀 있을 때까지 실행되지 않습니다. 대화 상자는 열거형 값 중 하나를 할당하여 DialogResult 폼의 DialogResult 속성 Button 에 할당하거나 코드에서 폼의 속성을 설정 DialogResult 하여 할당할 수 있습니다. 이 값은 이 메서드에서 반환됩니다. 이 반환 값을 사용하여 대화 상자에서 발생한 작업을 처리하는 방법을 결정할 수 있습니다. 예를 들어 대화 상자가 닫혀 이 메서드를 DialogResult.Cancel 통해 값을 반환한 경우 호출 ShowDialog 후 코드가 실행되지 않도록 할 수 있습니다.

폼이 모달 대화 상자로 표시되면 닫기 단추(폼의 오른쪽 위 모서리에 X가 있는 단추)를 클릭하면 폼이 숨겨지고 속성이 DialogResultDialogResult.Cancel설정됩니다. 모달이 아닌 양식 Close 과 달리 사용자가 대화 상자의 폼 닫기 단추를 클릭하거나 속성 값을 설정하면 .NET Framework 메서드를 DialogResult 호출하지 않습니다. 대신 폼이 숨겨지고 대화 상자의 새 인스턴스를 만들지 않고 다시 표시할 수 있습니다. 호출 해야 양식 대신 닫힌 하는 대화 상자는 숨겨진 것으로 표시 된 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 값 중 하나입니다.

예외

owner 매개 변수에 지정된 폼이 표시된 폼과 같은 경우

표시될 폼이 이미 표시되어 있는 경우

또는

표시될 폼을 사용할 수 없는 경우

또는

표시될 폼이 최상위 창이 아닌 경우

또는

대화 상자로 표시될 폼이 이미 모달 폼인 경우

또는

현재 프로세스가 사용자 대화형 모드에서 실행되고 있지 않은 경우. 자세한 내용은 UserInteractive를 참조하십시오.

예제

다음은 폼을 모달 대화 상자로 표시하고 대화 상자 폼의 컨트롤 값을 읽을지 여부를 결정하기 전에 대화 상자의 TextBox 반환 값을 평가하는 예제입니다. 이 예제에서는 명명 Form2 된 를 Form 만들고 라는 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

설명

애플리케이션에서 모달 대화 상자를 표시 하려면이 메서드를 사용할 수 있습니다. 이 메서드가 호출되면 다음 코드는 대화 상자가 닫혀 있을 때까지 실행되지 않습니다. 대화 상자는 폼의 속성에 할당하거나 코드에서 폼의 Button 속성을 설정 DialogResult 하여 의 값 DialogResult 중 하나를 할당 DialogResult 할 수 있습니다. 이 값은 이 메서드에서 반환됩니다. 이 반환 값을 사용하여 대화 상자에서 발생한 작업을 처리하는 방법을 결정할 수 있습니다. 예를 들어 대화 상자가 닫혀 이 메서드를 DialogResult.Cancel 통해 값을 반환한 경우 호출 ShowDialog 후 코드가 실행되지 않도록 할 수 있습니다.

폼이 모달 대화 상자로 표시되면 닫기 단추(폼의 오른쪽 위 모서리에 X가 있는 단추)를 클릭하면 폼이 숨겨지고 속성이 DialogResultDialogResult.Cancel설정됩니다. 모덜리스 양식 Close 과 달리 사용자가 대화 상자의 폼 닫기 단추를 클릭하거나 속성 값을 설정하면 .NET Framework 메서드를 DialogResult 호출하지 않습니다. 대신 폼이 숨겨지고 대화 상자의 새 인스턴스를 만들지 않고 다시 표시할 수 있습니다. 호출 해야 양식 대신 닫힌 하는 대화 상자는 숨겨진 것으로 표시 된 Dispose 폼은 더 이상 필요 없는 애플리케이션에서 폼의 메서드.

이 버전의 ShowDialog 메서드를 사용하면 표시되는 대화 상자를 소유할 특정 양식을 지정할 수 있습니다.

추가 정보

적용 대상