您的位置:首页 > 编程语言 > C#

C#winform中,MdiParent中每个子窗口都只能打开一个

2013-03-28 15:44 337 查看
之前在开发winform程序的时候,经常做这样的控制:每个form同时只能出现一个。

方法有很多,通常我都采用这种方式:(通过一个public 的static 字段进行控制)

主窗体menu:


private void subMenu1ToolStripMenuItem_Click(object sender, EventArgs e)


{


if (frm.sign == false)


{


frm f = new frm();


f.MdiParent = this;


frm.sign = true;


f.Show();




}


else


{


MessageBox.Show("该窗体已经存在~");


return;


}




}

frm窗体:


public static bool sign = false;




public frm()


{


InitializeComponent();


}




private void frm_FormClosing(object sender, FormClosingEventArgs e)


{


sign = false;


}

这种方式可以很好的工作。

在Singleton Pattern,提到这种模式有几个特点:

单例类只能有一个实例。
单例类必须自己创建自己的唯一实例。
单例类必须给所有其它对象提供这一实例。

转自:
(并非原创,但是找不到原来的链接了,如果谁看到了原文链接,留个言,谢谢)

作者:ITBear

出处:http://www.cnblogs.com/IT-Bear/

关于作者:初出茅庐。如有问题或建议,请多多赐教!

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接

如有问题,可以通过 tangyuting2011@foxmail.com 联系我,非常感谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: