Form.Closed Form.Closed Form.Closed Form.Closed Event

定义

关闭窗体时发生。Occurs when the form is closed.

public:
 event EventHandler ^ Closed;
[System.ComponentModel.Browsable(false)]
public event EventHandler Closed;
member this.Closed : EventHandler 
Public Custom Event Closed As EventHandler 
属性

示例

下面的示例演示如何使用 SetDesktopLocationClosed、@no__t @no__t 和 @no__t 成员。The following example demonstrates how to use the SetDesktopLocation, Closed, Load, Activated, and Activate members. 若要运行该示例,请将以下代码粘贴到一个名为 Form1 的窗体中,该窗体包含名为 Button1 的 @no__t,以及两个称为 @no__t 和 @no__t 的 @no__t 3 个控件。To run the example, paste the following code in a form called Form1 containing a Button called Button1 and two Label controls called Label1 and Label2.

static int x = 200;
static int y = 200;
void Button1_Click( System::Object^ sender, System::EventArgs^ e )
{
   
   // Create a new Form1 and set its Visible property to true.
   Form1^ form2 = gcnew Form1;
   form2->Visible = true;
   
   // Set the new form's desktop location so it  
   // appears below and to the right of the current form.
   form2->SetDesktopLocation( x, y );
   x += 30;
   y += 30;
   
   // Keep the current form active by calling the Activate
   // method.
   this->Activate();
   this->Button1->Enabled = false;
}


// Updates the label text to reflect the current values of x 
// and y, which was were incremented in the Button1 control's 
// click event.
void Form1_Activated( Object^ sender, System::EventArgs^ e )
{
   Label1->Text = String::Format( "x: {0} y: {1}", x, y );
   Label2->Text = String::Format( "Number of forms currently open: {0}", count );
}

static int count = 0;
void Form1_Closed( Object^ sender, System::EventArgs^ e )
{
   count -= 1;
}

void Form1_Load( Object^ sender, System::EventArgs^ e )
{
   count += 1;
}
static int x = 200;
static int y = 200;

private void Button1_Click(System.Object sender, 
    System.EventArgs e)
{
    // Create a new Form1 and set its Visible property to true.
    Form1 form2 = new Form1();
    form2.Visible = true;

    // Set the new form's desktop location so it  
    // appears below and to the right of the current form.
    form2.SetDesktopLocation(x, y);
    x += 30;
    y += 30;

    // Keep the current form active by calling the Activate
    // method.
    this.Activate();
    this.Button1.Enabled = false;
}



// Updates the label text to reflect the current values of x 
// and y, which was were incremented in the Button1 control's 
// click event.
private void Form1_Activated(object sender, System.EventArgs e)
{
    Label1.Text = "x: "+x+" y: "+y;
    Label2.Text = "Number of forms currently open: "+count;
}

static int count = 0;

private void Form1_Closed(object sender, System.EventArgs e)
{
    count -= 1;
}

private void Form1_Load(object sender, System.EventArgs e)
{
    count += 1;
}
Shared x As Integer = 200
Shared y As Integer = 200

Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click

    ' Create a new Form1 and set its Visible property to true.
    Dim form2 As New Form1
    form2.Visible = True

    ' Set the new form's desktop location so it appears below and 
    ' to the right of the current form.
    form2.SetDesktopLocation(x, y)
    x += 30
    y += 30

    ' Keep the current form active by calling the Activate method.
    Me.Activate()
    Me.Button1.Enabled = False
End Sub



' Updates the label text to reflect the current values of x and y, 
' which was were incremented in the Button1 control's click event.
Private Sub Form1_Activated(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles MyBase.Activated
    Label1.Text = "x: " & x & " y: " & y
    Label2.Text = "Number of forms currently open: " & count
End Sub

Shared count As Integer = 0

Private Sub Form1_Closed(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles MyBase.Closed
    count -= 1
End Sub

Private Sub Form1_Load(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
    count += 1
End Sub

注解

注意

@No__t .NET Framework 版本2.0 中已过时-0 事件请改用 FormClosed 事件。The Closed event is obsolete in the .NET Framework version 2.0; use the FormClosed event instead.

此事件在用户关闭窗体或窗体的 @no__t 0 方法之后发生。This event occurs after the form has been closed by the user or by the Close method of the form. 若要防止窗体关闭,请处理 Closing 事件,并将传递给事件处理程序的 @no__t 的 @no__t 属性设置为 trueTo prevent a form from closing, handle the Closing event and set the Cancel property of the CancelEventArgs passed to your event handler to true.

您可以使用此事件来执行任务,例如释放窗体使用的资源,并保存在窗体中输入的信息或更新其父窗体。You can use this event to perform tasks such as freeing resources used by the form and to save information entered in the form or to update its parent form.

注意

如果调用了 Application.Exit 方法来退出应用程序,则不会引发 Form.Closed 和 @no__t 1 事件。The Form.Closed and Form.Closing events are not raised when the Application.Exit method is called to exit your application. 如果在必须执行的任何一个事件中都有验证代码,则应在调用 Exit 方法之前,分别为每个打开的窗体调用 Form.Close 方法。If you have validation code in either of these events that must be executed, you should call the Form.Close method for each open form individually before calling the Exit method.

如果窗体为 MDI 父窗体,则在引发 MDI 父窗体的 @no__t 1 事件之前,将引发所有 MDI 子窗体的 Closing 事件。If the form is an MDI parent form, the Closing events of all MDI child forms are raised before the MDI parent form's Closing event is raised. 此外,在引发 MDI 父窗体的 @no__t 1 事件之前,将引发所有 MDI 子窗体的 @no__t 0 事件。In addition, the Closed events of all MDI child forms are raised before the Closed event of the MDI parent form is raised.

有关处理事件的详细信息,请参阅处理和引发事件For more information about handling events, see Handling and Raising Events.

适用于

另请参阅