📅  最后修改于: 2023-12-03 15:22:36.204000             🧑  作者: Mango
当我们在编写C#桌面程序时,有时候我们需要保证同一个窗口只能打开一次,而不是打开多个实例。这种情况下,我们需要在打开窗口时检查该窗口是否已经打开,如果已经打开,则关闭原有实例并打开新的实例。
以下是一个示例代码,演示如何通过判断窗口是否已经打开,并关闭已有实例,以保证只有一个实例在运行:
private MyForm myForm;
private void ShowMyForm()
{
if (this.myForm == null)
{
this.myForm = new MyForm();
this.myForm.FormClosed += MyForm_FormClosed;
this.myForm.Show();
}
}
private void MyForm_FormClosed(object sender, FormClosedEventArgs e)
{
this.myForm = null;
}
在上面的代码中,我们创建了一个MyForm窗口,并将它赋值给类级别的成员变量myForm。接着,我们使用if语句来检查myForm是否为null,如果是,则创建一个新的窗口并向FormClosed事件添加处理程序来设置myForm为null。如果myForm不为null,则意味着窗口已经打开,所以我们需要关闭已有的窗口,并打开新的窗口。
这里提供了对应的Markdown格式代码:
# 再次打开打开的表单时关闭它C#
当我们在编写C#桌面程序时,有时候我们需要保证同一个窗口只能打开一次,而不是打开多个实例。这种情况下,我们需要在打开窗口时检查该窗口是否已经打开,如果已经打开,则关闭原有实例并打开新的实例。
以下是一个示例代码,演示如何通过判断窗口是否已经打开,并关闭已有实例,以保证只有一个实例在运行:
```csharp
// 代码片段
在上面的代码中,我们创建了一个MyForm窗口,并将它赋值给类级别的成员变量myForm。接着,我们使用if语句来检查myForm是否为null,如果是,则创建一个新的窗口并向FormClosed事件添加处理程序来设置myForm为null。如果myForm不为null,则意味着窗口已经打开,所以我们需要关闭已有的窗口,并打开新的窗口。