Winform 窗体单例
有窗体Form1和窗体Form2,单击Form1上按钮,只弹出一个Form2。
Form2里自定义一个方法,里面判断是否弹出Form2,没有时弹出Form2。
public static Form2 instance;
public static Form2 CreateForm()
{
if (instance == null || instance.IsDisposed)
{
instance = new Form2();
}
return instance;
}
Form1里用Form2的CreateForm()方法实例化Form2,
Form2 f2 = Form2.CreateForm();
泛型形式:
public class Form_Singleton<T> where T : Form, new()
{
//private static T t_Form = null;
public static T t_Form { get; set; }
public static T CreateForm()
{
if (t_Form == null || t_Form.IsDisposed)
{
t_Form = new T();
}
return t_Form;
}
}
调用:
Form2 f2 = Form_Singleton<Form2>.CreateForm();
相关参考:
Winform 窗体单例的更多相关文章
- DevExpress Winform使用单例运行程序方法和非DevExpress使用Mutex实现程序单实例运行且运行则激活窗体的方法
		
原文:DevExpress Winform使用单例运行程序方法和非DevExpress使用Mutex实现程序单实例运行且运行则激活窗体的方法 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA ...
 - C#WinForm  窗体单例模式 反射单例
		
做了个mdi窗体 原以为指定一下MDIParent就可以了 没想到多次点击会出现多个窗体的现像 所以用到了单例模式 做法是这样的(学习出处:连接) 1.在子窗体声明一个子窗体类型的私有静态变量 并把子 ...
 - C# WinForm 单例模式(例:同一个窗体只创建一次实例)
		
//C# WinForm 单例模式(例:同一个窗体只创建一次实例) //打开窗体的事件: Form3 f = Form3.InstanceObject() ; //实例化窗体 f.Focus(); / ...
 - WinForm 登录窗体 + 单实例运行
		
关于怎么在winform里增加登录窗体或者如何让winform程序单实例运行网上都很多例子. 然而两者结合起来呢? //Program.cs static class Program { public ...
 - C#Winform窗体利用单例子窗体传值父窗体
		
简述:最近在做C#和HALCON编程,要用到单例的参数由子窗体改变父窗体的值.此例为简化版 1,点击系统设置 2,弹出子窗体,在其输入修改参数后点修改按钮 3,点击确定按钮后,关闭子窗体后,主窗体te ...
 - C# 通用单例窗体类
		
/// <summary> /// 通用的单例制作器 /// </summary> /// <typeparam name="T"></t ...
 - C# 单例模式和窗体的单例打开方法
		
第一种最简单,但没有考虑线程安全,在多线程时可能会出问题,不过俺从没看过出错的现象,表鄙视我…… public class Singleton{ private static Singleton ...
 - WinForm 窗体属性 窗体美化
		
WinForm是·Net开发平台中对Windows Form的一种称谓. Windows窗体的一些重要特点如下: 功能强大:Windows窗体可用于设计窗体和可视控件,以创建丰富的基于Windows的 ...
 - winform窗体控件(全)
		
回顾跟补充下除了昨天那常用6个其他的winform窗体控件作用 1:Button:按钮 (1)AutoSize:如果是True的情况下,内容将会撑开:False的话会另起一行 (2)Enabled: ...
 
随机推荐
- Nginx安装、配置文档
			
Nginx介绍 nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发 ...
 - mysql:权限分配
			
grant all privileges on *.* to name@localhost identified by '1'; flush privileges;
 - 用openvswitch配置跨节点的docker网络环境
			
在一篇随笔中,我们已经尝试了在不依赖工具的情况下设置docker的ip,连我都想吐槽,MD单机都这么麻烦,在多机的环境中岂不是要了我的小命! 本文就是为了多机环境中各个节点的容器通信而做的,网络拓朴如 ...
 - bug--常见的bug总结:
			
新手总结的开发中所遇到错误及解决办法,如有不对,欢迎指正,如有更好的解决办法,也请不吝赐教. 一.dialog.show()引起的android.view.WindowManager$BadToken ...
 - 记录Tomcat7.x热部署配置过程
			
我自己的开发版本是tomcat7.0.43+myeclipse14 原版在:http://blog.csdn.NET/chen_zw/article/details/8867779 热部署是指在你对项 ...
 - C#创建DBF自由库 [转]
			
先看段代码: string ole_connstring = @"Provider=VFPOLEDB.1;Data Source=D:\;";System.Data.OleDb.O ...
 - vim学习
			
vim编辑器的工作模式分为3种 1.Command Mode 命令模式 2.Insert Mode 插入模式 3.Lastline Mode 底行模式 vim 打开文件时处于命令模式,i 可以切换到插 ...
 - SparkSQL DataFrames操作
			
Hive中已经存在emp和dept表: select * from emp; +--------+---------+------------+-------+-------------+------ ...
 - mysql下将分隔字符串转换为数组
			
MySQL存储过程可以用于分割字符串,下面就为您详细介绍这种MySQL存储过程的用法,供您参考学习之用. 现有一段字符串,如apple,banana,orange,pears,grape,要把它按照逗 ...
 - VMWare虚拟机 使用vmtools拷贝文件 临时文件问题
			
Win7下, 临时文件会存放在路径C:\Users\admin\AppData\Local\Temp\vmware-admin\VMwareDnD,如果不及时删除,C盘就会越来越大直至放满.