您的位置:程序门 -> .net技术 -> c#



一个winform如何只能产生一个实例?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


一个winform如何只能产生一个实例?[已结贴,结贴人:arwu]
发表于:2007-03-19 10:35:56 楼主
rt:请高手指点,一个维护部门资料的winform,当我点击相应菜单项时判断是否已经打开这个winform,如果已打开则不许再开一实例.
发表于:2007-03-19 10:46:141楼 得分:0
參看
http://blog.csdn.net/tjvictor/archive/2007/01/18/1486420.aspx
发表于:2007-03-19 11:02:542楼 得分:20
打开前判断一下

winform   newwinform   =   null;

private   void   button1_click(object   sender,   eventargs   e)
{
        if   (newwinform   ==   null   ¦ ¦   newwinform.isdisposed)
        {
                newwinform=   new   winform(this);
                newwinform.show();
        }
        else
        {
                newwinform.active();
        }
}
发表于:2007-03-19 12:32:213楼 得分:0
如果是在一台pc上   可以采用mdi结构的form
这样一次只能开一个相同的form

如果是在不同的pc上,要调用通信
传递一个变量来进行判断
发表于:2007-03-19 12:42:554楼 得分:0
you   can   use   the   single   pattern,   it 's   designed   for   this.
发表于:2007-03-19 18:14:065楼 得分:0
selgton设计模式,忘了是不是这么拼的了
发表于:2007-03-19 18:45:476楼 得分:0
private   static   winform   form   =   null;

private   winform()     //私有构造函数
{}

public   static   winform   getinstance()
{
        if(form   ==   null)
        {
                form   =   new   winform();
        }
        return   form;
}
调用getinstance得到引用show出来

发表于:2007-03-19 18:56:557楼 得分:0
一个私有变量就搞定了  

我还以为要用到   mutex   之类的东西呢
发表于:2007-03-19 18:58:268楼 得分:0
singleton   (单件模式)
   
*****************************************************************************
欢迎使用csdn论坛专用阅读器   :   csdn   reader(附全部源代码)  

最新版本:20070212

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
发表于:2007-03-19 19:15:549楼 得分:0
我也是用的那種static   方法.不過最好還是像2樓樣加個   form.isdisposed


快速检索

最新资讯
热门点击