CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

避免重复弹出窗体

楼主funsuzhou(☆【处变不惊】☆)2005-06-20 12:54:58 在 .NET技术 / C# 提问

主窗体有若干按钮,每个按钮可以弹出某个窗体类的一个实例,要求按按钮时如果有这个窗体类的实例就最大化这个实例,如果没有这个窗体类的实例则新建一个实例并最大化 问题点数:20、回复次数:5Top

1 楼maxxxz(ma)回复于 2005-06-20 12:58:38 得分 5

Private   Shared   instance   As   form1  
   
          ''singleton模式  
          Public   Shared   Function   getInstance()   As   form1  
                  If   instance   Is   Nothing   Then  
                          instance   =   New   ShouZhi  
                  End   If  
                  If   instance.IsDisposed   Then  
                          instance   =   New   ShouZhi  
                  End   If  
                  Return   instance  
          End   Function  
   
  vb写的。一看就懂~Top

2 楼funsuzhou(☆【处变不惊】☆)回复于 2005-06-20 13:13:45 得分 0

怎么对所有的实例进行比较?  
  用C#Top

3 楼cobrastudio(老汉我)回复于 2005-06-20 13:27:24 得分 5

回复人:   maxxxz(ma)   (   )   信誉:100     2005-06-20   12:58:00     得分:   0      
     
     
        Private   Shared   instance   As   form1  
   
          ''singleton模式  
          Public   Shared   Function   getInstance()   As   form1  
                  If   instance   Is   Nothing   Then  
                          instance   =   New   ShouZhi  
                  End   If  
                  If   instance.IsDisposed   Then  
                          instance   =   New   ShouZhi  
                  End   If  
                  Return   instance  
          End   Function  
   
  vb写的。一看就懂~  
       
     
  ===  
  在窗体的中都实现getInstance()方法?  
   
  Top

4 楼funsuzhou(☆【处变不惊】☆)回复于 2005-06-20 13:29:20 得分 0

我不要VB代码;  
  应用程序运行时有可能有很多打开的窗体,怎么对所有这些实例一一比较?Top

5 楼wwy830916(问题多如牛毛)回复于 2005-06-20 14:46:21 得分 10

(1)  
  private   Form2   frm2;  
  private   Form2   GetFrm2()  
  {  
  if(frm2   ==   null)  
  {  
  frm2   =   new   Form2();  
  }  
  if(frm2.IsDisposed)  
  {  
  frm2=   new   Form2();  
  }  
  return   frm2;  
  }  
   
  private   void   button1_Click(object   sender,   System.EventArgs   e)  
  {  
  GetFrm().Show();  
  frm2.Focus();  
  frm2.WindowState   =   FormWindowState.Maximized;  
  }  
   
  (2)  
  或者在Form2中:  
   
  public   static   bool   IsOpen   =   false;  
  protected   override   void   Dispose(   bool   disposing   )  
  {  
  IsOpen   =   false;  
  if(   disposing   )  
  {  
  if(components   !=   null)  
  {  
  components.Dispose();  
  }  
  }  
  base.Dispose(   disposing   );  
  }  
   
  private   void   Form2_Load(object   sender,   System.EventArgs   e)  
  {  
                    IsOpen   =   true;  
  }  
   
  Form1中:  
  private   void   button1_Click(object   sender,   System.EventArgs   e)  
  {  
  if(!Form2.IsOpen)  
  {  
  frm2   =   new   Form2();  
  frm2.Show();  
  frm2.WindowState   =   FormWindowState.Maximized;  
  }  
  else  
  {  
  frm2.Focus();  
  frm2.WindowState   =   FormWindowState.Maximized;  
  }  
  }  
   
  (3)  
  再者就用API(一时忘了哪个API)Top

相关问题

  • 怎样避免在窗体的CreatForm执行重复语句
  • winform 下如何避免窗体重复打开
  • 怎样知道当前加载了多少窗体?或者避免重复加载窗体?
  • 父窗体textbox获取弹出窗体的值
  • 登录后弹出主窗体,怎么关闭Login窗体?
  • 如何让弹出的窗体居中?
  • 怎样让弹出窗体居中??
  • 不规则窗体的弹出效果
  • ????????????????如何弹出另一个窗体?????????????????????????????
  • 怎样将(弹出)的窗体关闭

关键词

  • 窗体
  • frm
  • shouzhi
  • 实例
  • instance
  • isopen
  • isdisposed
  • formwindowstate
  • windowstate
  • disposing

得分解答快速导航

  • 帖主:funsuzhou
  • maxxxz
  • cobrastudio
  • wwy830916

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo