📅  最后修改于: 2023-12-03 15:08:49.674000             🧑  作者: Mango
在开发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()
{
// 关闭表单代码
}
在使用以上两种方法时,需要注意以下几点: