Winform开启新窗体后关闭原来的窗体
时间: 2023-08-01 09:15:22 浏览: 248
C# Winform在MDI中打开一个子窗体关闭上一个子窗体
5星 · 资源好评率100%
要在打开新窗体时关闭原来的窗体,您可以使用以下代码:
```
// 在原来的窗体中打开新窗体
Form2 form2 = new Form2();
form2.Show();
// 关闭原来的窗体
this.Hide();
```
在这个例子中,我们在原来的窗体中创建了一个新的窗体,然后显示它。接下来,我们使用 `this.Hide()` 方法关闭原来的窗体,而不是 `this.Close()` 方法,因为这将导致应用程序关闭。请注意,您需要将 `Form2` 替换为您实际使用的窗体类名。
另外,您也可以在新窗体中订阅原来窗体的 `FormClosed` 事件,以便在新窗体关闭时关闭原来的窗体。以下是一个示例:
在原来的窗体中:
```
// 在原来的窗体中打开新窗体
Form2 form2 = new Form2();
form2.FormClosed += (sender, e) => this.Close();
form2.Show();
// 隐藏原来的窗体
this.Hide();
```
在新窗体中:
```
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
// 触发原来窗体的 FormClosed 事件
if (Owner != null)
{
Owner.Close();
}
}
```
在这个例子中,我们在新窗体中订阅了 `FormClosed` 事件,并在事件处理程序中关闭了原来的窗体。在原来的窗体中,我们使用 `form2.FormClosed += (sender, e) => this.Close();` 语句订阅了新窗体的 `FormClosed` 事件。这意味着当新窗体关闭时,它会触发原来窗体的 `this.Close()` 方法,从而关闭原来的窗体。
阅读全文