winform 单例模式
时间: 2023-10-17 10:06:55 浏览: 130
WinForm 单例模式的实现方法一般是通过重载窗体类的 OnHandleCreated 和 OnClosing 方法来实现。在 OnHandleCreated 中判断是否已经存在该窗体的实例,如果已经存在则直接显示该窗体实例并关闭当前的窗体,如果不存在则创建该窗体实例。在 OnClosing 中将该窗体实例赋值为 null,以便下一次打开时能重新创建。
下面是一个简单实现单例模式的示例代码:
```csharp
public partial class MainForm : Form
{
private static MainForm instance;
private MainForm()
{
InitializeComponent();
}
protected override void OnHandleCreated(EventArgs e)
{
base.OnHandleCreated(e);
if (instance != null && instance.Handle != IntPtr.Zero)
{
this.Dispose();
return;
}
instance = this;
}
protected override void OnClosing(CancelEventArgs e)
{
base.OnClosing(e);
instance = null;
}
}
```
阅读全文