欢迎光临
我们一直在努力

MDI窗体程序中防止子窗体被多次实例化——Singleton的C#实现-.NET教程,C#语言

建站超值云服务器,限时71元/月

晚上逛csdn论坛的时候,看到c#区有位朋友问“防止mdi子窗体被多次实例化”,我随即写了这篇文章。

其实这个问题,就是经典的23种设计模式中的单件模式(singleton),下面用c#实现之:

首先我们有2个windows form,主窗体叫form1,子窗体叫childform。在主窗体中加入一menu,用来实例化子窗体,我们在form1.cs中写入下代码:

private static childform childform; //静态变量,保存唯一实例

private void menuitem2_click(object sender, system.eventargs e)

{

childform childform = getchildform(); //获取子窗体对象

childform.show(); //显示之

}

private childform getchildform()

{

//先后次序不能错,前一个条件用来判断是否是第一次,后一个条件用来判断子窗体是否被关闭了

if( childform == null || childform.isdisposed )

{ //第一次实例化也好,被关了也好,都重新实例化

childform = new childform();

childform.mdiparent = this;

}

return childform;

}

———————————————————————————————————-

ok, just easy like this! enjoy it!

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » MDI窗体程序中防止子窗体被多次实例化——Singleton的C#实现-.NET教程,C#语言
分享到: 更多 (0)