C#中WinForm窗体的单例模式,避免窗体被实例化多次
View Code
在MDI窗体中使用单例模式可以有效的避免同个窗体被实例化多次
//==============字窗体的修改================ //一.将构造函数改成private private FrmSub1() { InitializeComponent(); } //二.声明一个字窗体的类型的静态变量 private static FrmSub1 instance; //三.通过静态方法创建字窗体 public static FrmSub1 CreateFrom() { //判断是否存在该窗体,或时候该字窗体是否被释放过,如果不存在该窗体,则 new 一个字窗体 if (instance == null || instance.IsDisposed) { instance = new FrmSub1(); } return instance; } //==============MDI中的调用===========================//通过子类的静态方法实例化窗体 FrmSub1 frm = FrmSub1.CreateFrom(); frm.MdiParent = this; frm.Show();
- 2楼falconfei昨天 10:05
- 再加个锁。
- 1楼fuapolloqi昨天 00:25
- 关键问题是这个窗口隐藏后不能让它释放掉,否则下一次show的时候会报错:无法访问被释放的资源