다음을 통해 공유


방법: 대화 상자 닫기 및 사용자 입력 유지

디자인 타임이나 런타임에 대화 상자가 닫히는 방식을 설정할 수 있습니다. 디자인 타임에는 대화 상자에 있는 모든 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 Forms 대화 상자