表单关闭时的操作c#

时间:2015-02-07 21:44:11

标签: c#

我在大学,这是我的第一个(主要)项目。

我在表单关闭时尝试执行操作。我似乎没有在网上搜索时获得正确的术语,或者给出的答案与我想要做的不匹配。

目前我宣布一个班级并显示来自 -

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

我想做的就是这个 -

WHEN mod IS CLOSED {
    // Do stuff
}

5 个答案:

答案 0 :(得分:3)

您正在使用ShowDialog,因此在关闭对话框之后才会执行其后面的代码。 mod.ShowDialog(); doStuff();可以很好地运作。

答案 1 :(得分:1)

您想看看两个事件:

Form.FormClosinghttps://msdn.microsoft.com/en-us/library/system.windows.forms.form.formclosing(v=vs.110).aspx

Form.FormClosedhttps://msdn.microsoft.com/en-us/library/system.windows.forms.form.formclosed%28v=vs.110%29.aspx

第一个允许您在表单完全关闭之前执行操作,例如取消关闭过程。第二个是你想在表单关闭后执行操作时使用的东西(可能是为了清理资源,作为一个例子)。

所以,举个例子,让我们说你想在表格实际关闭时执行一个动作:

// 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");
}

答案 2 :(得分:1)

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

在你的构造函数中执行:

this.FormClosed += Form_Closed;

然后在表单正文中添加此方法。

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

答案 3 :(得分:1)

您应该将处理程序附加到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");
}

答案 4 :(得分:1)

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

  protected override void OnFormClosing(FormClosingEventArgs e)
  {
       base.OnFormClosing(e);
       // your code...
  }