Winform单例模式之牛刀小试
来源:互联网 发布:扫鬼软件下载 编辑:程序博客网 时间:2024/06/16 15:22
今天winform开发时,有一个需求:点击一个button,弹出一个窗体,显示相关信息,此时再点击button,就不再创建窗体,这里有两种方式解决:
- 弹出窗体不关闭,无法操作主窗体
使用单例模式
这里使用第二种方法:单例模式(详见百度)
具体代码如下:
public partial class About : Form{ public static About instance { get; set; } private About() { InitializeComponent(); } public static About GetInstance() { if (instance == null) { instance = new About(); } return instance; }}
调用
About about=About.GetInstance();about.Show();
这样就实现了同时只能打开一个窗体,又能同时操作其他窗体。
But,实际操作之后,会出现这个错误:
这是因为在关闭窗体后,这个对象虽然可能还没被GC回收,但是IsDisposed已经被置为true,已经被视为释放了,这就造成无法访问。
这时可以通过监听Disposed事件来重新分配对象内存。
代码:
public partial class About : Form{ public static About instance { get; set; } private About() { InitializeComponent(); } public static About GetInstance() { if (instance == null) { instance = new About(); } instance.Disposed+=new EventHandler(instance_Disposed); return instance; } static void instance_Disposed(object sender,EventArgs e) { instance = null; }}
0 0
- Winform单例模式之牛刀小试
- winform中的单例模式
- winform 单例模式 单线程例子
- Winform编程基础之窗体单例模式和单线程操作
- 在WinForm中理解单例模式
- 关于WinForm的单例模式
- C# Winform单例模式、程序集
- 模式之单例模式
- Winform-单例模式-同一个窗口值打开一次
- 使用单例(单态)模式实现winform窗体的单例显示
- 设计模式之单例
- Java之单例模式
- JavaScript之单例模式
- 设计模式之单例
- 单例模式之旅
- ios之单例模式
- 设计模式之 单例
- WPF之单例模式
- docker使用lvm卷存储镜像
- js学习记录1
- 常用正则表达式大全 (转)
- deviceone 跨平台开发
- 每日论文image-to-Image Translation with Conditional Adversarial Networks
- Winform单例模式之牛刀小试
- javascript工厂模式
- LVS简单命令详解
- Zigbee技术和CC2530
- ajax的post请求后台request.getParameter()接收不到参数问题
- 2017最新下载安装Java详细教程
- Spark学习笔记(八)
- 终于有自己的博客了!
- JDK1.8特性