窗体关闭时的操作c#

窗体关闭时的操作c#,c#,C#,我在上大学,这是我的第一个(专业)项目 我试图在窗体关闭时执行一个操作。在网上搜索时,我似乎没有掌握正确的术语,或者给出的答案与我想做的不匹配 目前,我正在声明一个类并显示- private void createuser_Click(object sender, EventArgs e) { User_Modification mod = new User_Modification("Create", "Create"); mod.ShowDialog(); } 我想做的是-

我在上大学,这是我的第一个(专业)项目

我试图在窗体关闭时执行一个操作。在网上搜索时,我似乎没有掌握正确的术语,或者给出的答案与我想做的不匹配

目前,我正在声明一个类并显示-

private void createuser_Click(object sender, EventArgs e)
{
    User_Modification mod = new User_Modification("Create", "Create");
    mod.ShowDialog();
}
我想做的是-

WHEN mod IS CLOSED {
    // Do stuff
}

您将要查看两个事件:

Form.FormClosing

Form.FormClosed

第一个选项允许您在表单完全关闭之前执行操作,例如取消关闭过程。第二个是如果希望在表单关闭后执行操作(例如,可能是为了清理资源),您将使用什么

因此,作为一个示例,假设您希望在窗体实际上已关闭时执行一个操作:

// Somewhere in your code where you create the form object.
form.FormClosed += Form_FormClosed;

// Somewhere else in your code.
private void Form_FormClosed(Object sender, FormClosedEventArgs e) 
{
    MessageBox.Show("Form closed");
}

您需要创建一个处理程序来捕获FormClosed事件:

在您的构造函数中,请执行以下操作:

this.FormClosed += Form_Closed;
然后在表单主体中添加此方法

private void Form_Closed(object sender, FormClosedEventArgs e)
{
      // Do stuff
}

您应该将处理程序附加到
FormClosed
事件:

private void createuser_Click(object sender, EventArgs e)
{
    User_Modification mod = new User_Modification("Create", "Create");
    mod.FormClosed += new FormClosedEventHandler(FormClosed);
    mod.ShowDialog();
}

void FormClosed(object sender, FormClosedEventArgs e)
{
    MessageBox.Show("Closed");
}
  protected override void OnFormClosing(FormClosingEventArgs e)
  {
       base.OnFormClosing(e);
       // your code...
  }

如果您使用的是WinForms,则可以覆盖
OnFormClosing
事件:

private void createuser_Click(object sender, EventArgs e)
{
    User_Modification mod = new User_Modification("Create", "Create");
    mod.FormClosed += new FormClosedEventHandler(FormClosed);
    mod.ShowDialog();
}

void FormClosed(object sender, FormClosedEventArgs e)
{
    MessageBox.Show("Closed");
}
  protected override void OnFormClosing(FormClosingEventArgs e)
  {
       base.OnFormClosing(e);
       // your code...
  }

您使用的是
ShowDialog
,因此它后面的代码直到对话框关闭后才会执行<代码>mod.ShowDialog();doStuff()会很好地工作。

Look在窗体的事件中,您应该会看到关闭、关闭等内容。您尝试在线搜索“Form closed C#”,但没有得到任何有用的内容?
ShowDialog
显示一个模式对话框。您可以在它之后的下一行开始“做事情”。
。Closed
是一个过时的事件。NET 2.0引入了
.FormClosed
,现在应该使用它。订阅事件是更好的做法,除非您需要显式重写OnFormClosed中的行为。两个目的应该是两个处理程序。添加到Nadia的答案中,您可以在
User\u modification
中设置
DialogResult
,并将该值设为
ShowDialog()
调用的返回值。这可以用作做其他事情的成功/失败标志。根据需要返回
OK
Cancel
。。。