Form.FormClosing Form.FormClosing Form.FormClosing Form.FormClosing Event

정의

폼이 닫히기 전에 발생합니다.Occurs before the form is closed.

public:
 event System::Windows::Forms::FormClosingEventHandler ^ FormClosing;
public event System.Windows.Forms.FormClosingEventHandler FormClosing;
member this.FormClosing : System.Windows.Forms.FormClosingEventHandler 
Public Custom Event FormClosing As FormClosingEventHandler 

예제

다음 예제에서는이 멤버를 사용 하는 방법을 보여 줍니다.The following example demonstrates the use of this member. 예제에서는 이벤트 처리기에서 보고서를 FormClosing 이벤트입니다.In the example, an event handler reports on the occurrence of the FormClosing event. 이 보고서를 통해 이벤트 발생 하 고 도움이 될 수 있습니다 디버깅 하는 경우를 학습할 수 있습니다.This report helps you to learn when the event occurs and can assist you in debugging. 자주 발생 하는 이벤트 또는 여러 이벤트를 보고 하려면 바꾸는 것이 좋습니다 MessageBox.Show 사용 하 여 Console.WriteLine 줄에 메시지를 추가 또는 TextBox합니다.To report on multiple events or on events that occur frequently, consider replacing MessageBox.Show with Console.WriteLine or appending the message to a multiline TextBox.

예제 코드를 실행 하려면 형식의 인스턴스를 포함 하는 프로젝트에 붙여넣습니다 Form 라는 Form1합니다.To run the example code, paste it into a project that contains an instance of type Form named Form1. 연결 된 이벤트 처리기는 확인 된 FormClosing 이벤트입니다.Then ensure that the event handler is associated with the FormClosing event.

private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {

System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
messageBoxCS.AppendFormat("{0} = {1}", "CloseReason", e.CloseReason );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Cancel", e.Cancel );
messageBoxCS.AppendLine();
MessageBox.Show(messageBoxCS.ToString(), "FormClosing Event" );
}
Private Sub Form1_FormClosing(sender as Object, e as FormClosingEventArgs) _ 
     Handles Form1.FormClosing

    Dim messageBoxVB as New System.Text.StringBuilder()
    messageBoxVB.AppendFormat("{0} = {1}", "CloseReason", e.CloseReason)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "Cancel", e.Cancel)
    messageBoxVB.AppendLine()
    MessageBox.Show(messageBoxVB.ToString(),"FormClosing Event")

End Sub

설명

FormClosing 는 폼이 닫히는 이벤트 발생 합니다.The FormClosing event occurs as the form is being closed. 폼이 닫히면 삭제 되 고 폼을 사용 하 여 연결 된 모든 리소스를 해제 합니다.When a form is closed, it is disposed, releasing all resources associated with the form. 이 이벤트를 취소 하면 폼 열린 상태로 유지 됩니다.If you cancel this event, the form remains opened. 폼의 클로저에 취소 하려면를 Cancel 의 속성을 FormClosingEventArgs 이벤트 처리기에 전달 된 true합니다.To cancel the closure of a form, set the Cancel property of the FormClosingEventArgs passed to your event handler to true.

폼을 모달 대화 상자로 표시 되 면 클릭 하는 닫기 단추 (폼의 오른쪽 위 모서리에 있는 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 클릭할 때 속성을 닫기 설정 하 여 단추를 DialogResult 속성에 대 한 이벤트 처리기에서는 FormClosing 폼의 이벤트.You can override the value assigned to the DialogResult property when the user clicks the Close button by setting the DialogResult property in an event handler for the FormClosing event of the form.

참고

경우는 Close 메서드를 호출을 Form 모덜리스 창으로 표시를 호출할 수 없습니다는 Show 양식의 리소스가 이미 해제 되었으므로 때문에 폼을 표시 하는 메서드.When the Close method is called on a Form displayed as a modeless window, you cannot call the Show method to make the form visible, because the form's resources have already been released. 폼을 숨기고 표시를 사용 하 여 확인 된 Hide 메서드.To hide a form and then make it visible, use the Hide method.

폼이 (MDI) 다중 문서 인터페이스 부모 폼 이면 합니다 FormClosing 모든 MDI 자식 폼의 MDI 부모 폼의 하기 전에 발생 FormClosing 이벤트가 발생 합니다.If the form is a multiple-document interface (MDI) parent form, the FormClosing events of all MDI child forms are raised before the MDI parent form's FormClosing event is raised. 마찬가지로 합니다 FormClosed 모든 MDI 자식 폼의 이벤트 발생 하기 전에 FormClosed MDI 부모 폼의 이벤트가 발생 합니다.Likewise, the FormClosed events of all MDI child forms are raised before the FormClosed event of the MDI parent form is raised. 취소는 FormClosing MDI 자식 폼의 이벤트 해도 FormClosing 발생 하지 MDI 부모 폼의 이벤트입니다.Canceling the FormClosing event of an MDI child form does not prevent the FormClosing event of the MDI parent form from being raised. 그러나로 설정 됩니다 이벤트를 취소 trueCancel 의 속성을 FormClosingEventArgs 부모 폼에 매개 변수로 전달 되는 클래스입니다.However, canceling the event will set to true the Cancel property of the FormClosingEventArgs class that is passed as a parameter to the parent form. 모든 MDI 부모 및 자식 폼을 닫습니다, 설정 된 Cancel 속성을 false 를 mdi 부모 폼입니다.To force all MDI parent and child forms to close, set the Cancel property to false in the MDI parent form.

이벤트 처리에 대한 자세한 내용은 이벤트 처리 및 발생 을 참조하십시오.For more information about handling events, see Handling and Raising Events.

적용 대상

추가 정보