在c#Winform的一个窗口的按钮的点击事件中如何打开销毁已经实例化的一个窗口
时间: 2024-04-29 13:22:19 浏览: 89
可以通过以下步骤来实现在一个窗口的按钮点击事件中打开并销毁一个已经实例化的窗口:
1. 在窗口的类中定义一个私有变量来保存已经实例化的窗口对象。
```csharp
private MyForm myForm;
```
2. 在按钮的点击事件中,先判断窗口对象是否为空,如果为空则创建一个新的窗口对象并显示,否则直接显示已经存在的窗口对象。同时,如果窗口对象已经存在,则需要先关闭并释放该窗口对象,以确保不会出现重复实例化的情况。
```csharp
private void btnOpenForm_Click(object sender, EventArgs e)
{
if (myForm == null)
{
myForm = new MyForm();
myForm.FormClosed += new FormClosedEventHandler(MyForm_FormClosed);
myForm.Show();
}
else
{
myForm.Activate();
myForm.WindowState = FormWindowState.Normal;
}
}
private void MyForm_FormClosed(object sender, FormClosedEventArgs e)
{
myForm = null;
}
```
3. 在窗口的关闭事件中,将窗口对象设置为null,以便下一次打开窗口时能够重新实例化。
```csharp
private void MyForm_FormClosed(object sender, FormClosedEventArgs e)
{
myForm = null;
}
```
通过以上步骤,可以实现在一个窗口的按钮点击事件中打开并销毁已经实例化的窗口。
阅读全文