📜  如何在 UserControl 中关闭表单 (1)

📅  最后修改于: 2023-12-03 15:08:49.674000             🧑  作者: Mango

如何在UserControl中关闭表单

在开发Windows Forms应用程序时,需要在应用程序中打开多个窗体。如果在UserControl中打开表单,有时需要在关闭UserControl时同时关闭打开的表单。下面将介绍如何在UserControl中关闭表单。

方法一:使用事件

可以使用C#中的事件来关闭打开的表单。在UserControl中定义一个事件,然后在打开表单的代码中订阅该事件,在UserControl中关闭表单。下面是示例代码:

// 定义事件
public event EventHandler CloseForm;

// 打开表单的代码
private void OpenFormButton_Click(object sender, EventArgs e)
{
    Form form = new Form();
    // 订阅事件
    this.CloseForm += (s, args) => form.Close();
    form.Show();
}

// 关闭表单的代码
private void CloseButton_Click(object sender, EventArgs e)
{
    // 触发事件
    this.CloseForm?.Invoke(this, EventArgs.Empty);
}
方法二:使用回调函数

另一种方法是在打开表单的代码中使用回调函数,将关闭表单的方法作为参数传递进去。然后在UserControl中执行该回调函数,关闭表单。下面是示例代码:

// 打开表单的代码
private void OpenFormButton_Click(object sender, EventArgs e)
{
    Form form = new Form();
    // 传递回调函数
    form.FormClosed += (s, args) => CloseForm();
    form.Show();
}

// 关闭表单的代码
private void CloseForm()
{
    // 关闭表单代码
}
注意事项

在使用以上两种方法时,需要注意以下几点:

  • 订阅事件和传递回调函数的代码应该在打开表单的代码之前执行。
  • 实现事件和回调函数的方法应该在UserControl中定义。
  • 所有的打开表单的代码应该使用同一个事件或回调函数。