Winform中同一窗口只能弹出一次的实现
2008-12-18 09:26
288 查看
1.首先新建一个Winform程序,拖一个Button到默认的Form1上,再新建一个Form2。
2.将Form2的默认构造函数改为private,然后添加一个静态变量与实例化函数,代码如下:
view plaincopy to clipboardprint?
private static bool instanceFlag = false;
private Form2()
{
instanceFlag = true;
InitializeComponet();
}
public static Form2 CreateInstance()
{
return instanceFlag ? null : new Form2();
}
3.在Form1的Button_Click事件中写入如下代码:
view plaincopy to clipboardprint?
private void Button1_Click(object sender, EventArgs e)
{
Form2 fm = Form2.CreateInstance();
if(fm != null)
fm.Show();
}
这样就可以了,无论你点多少次Button1,都只会有一个Form2实例
根据这种方法还可以进行改进,比如说Form2最多只能实例化3个,那么只需将Form2中的代码做如下修改即可:
view plaincopy to clipboardprint?
private static int instanceFlag = 0;
private Form2()
{
instanceFlag ++;
InitializeComponet();
}
public static Form2 CreateInstance()
{
return instanceFlag >=3 ? null : new Form2();
}
2.将Form2的默认构造函数改为private,然后添加一个静态变量与实例化函数,代码如下:
view plaincopy to clipboardprint?
private static bool instanceFlag = false;
private Form2()
{
instanceFlag = true;
InitializeComponet();
}
public static Form2 CreateInstance()
{
return instanceFlag ? null : new Form2();
}
private static bool instanceFlag = false; private Form2() { instanceFlag = true; InitializeComponet(); } public static Form2 CreateInstance() { return instanceFlag ? null : new Form2(); }
3.在Form1的Button_Click事件中写入如下代码:
view plaincopy to clipboardprint?
private void Button1_Click(object sender, EventArgs e)
{
Form2 fm = Form2.CreateInstance();
if(fm != null)
fm.Show();
}
private void Button1_Click(object sender, EventArgs e) { Form2 fm = Form2.CreateInstance(); if(fm != null) fm.Show(); }
这样就可以了,无论你点多少次Button1,都只会有一个Form2实例
根据这种方法还可以进行改进,比如说Form2最多只能实例化3个,那么只需将Form2中的代码做如下修改即可:
view plaincopy to clipboardprint?
private static int instanceFlag = 0;
private Form2()
{
instanceFlag ++;
InitializeComponet();
}
public static Form2 CreateInstance()
{
return instanceFlag >=3 ? null : new Form2();
}
private static int instanceFlag = 0; private Form2() { instanceFlag ++; InitializeComponet(); } public static Form2 CreateInstance() { return instanceFlag >=3 ? null : new Form2(); }
相关文章推荐
- Winform中同一窗口只能弹出一次的实现
- Winform关闭窗口时弹出确认窗口的实现
- C# winform实现右下角弹出窗口结果的方法
- 用Cookie实现仅弹出一次窗口(JavaScript)
- C#(WinForm)实现软件只能启动一次,再次启动会将已启动的软件置顶显示
- winform实现只能打开一次
- 利用cookie实现“只弹出一次窗口”的JS代码
- 用showModalDialog弹出窗口和UltraWebTree树实现的行政区域(省,市,县)选择
- ASP.NET实现自适应图片大小的弹出窗口(窗口可任意编辑)
- ASP实现自动弹出窗口
- ASP.NET弹出窗口Div实现
- winform窗口中实现按Enter键动态将光标定位到下一个textBox控件。以登录窗口为例
- C# winform控件之弹出窗口学习积累
- VS C# .NET WebBrowser控件 利用插入JS代码,实现控制弹出IE窗口
- 网页方式实现MSN的弹出窗口
- android PopupWindow实现从底部弹出或滑出选择菜单或窗口
- Asp.net中实现从弹出窗口中选择值
- js制作带有遮罩弹出层实现登录小窗口
- 实现让弹出的窗口显示在原窗口后面
- popupWindow弹出窗口的完美实现(实现弹出背景变暗效果)