none
朋友们,怎么样判断一个窗体是否已经存在? RRS feed

  • 问题

  • winform中, 我NEW 了一个 FrmMain  , 我在另外地方把它 hide了,还有一个地方呢, 点击就要让它显示,是不是要判断一下 这个窗体是否存在啊?

     

    如果要判断一个窗体是否已经NEW,怎么判断的呀?


    C#初学者,所以提的问题对各位前辈朋友来说可能很简单,也可能问法也不对,非常期待大家的回答……
    2010年4月26日 2:30

答案

  • 判断窗体是否是NULL

    http://blog.csdn.net/Knight94/archive/2006/05/24/752783.aspx


    努力+方法=成功
    2010年4月26日 3:11
  • public 显示 xianshi = null;
           private void button4_Click(object sender, EventArgs e)
            {
                if ( xianshi == null||xianshi.IsDisposed)
                {
                    xianshi = new 显示(this);
                    xianshi.MdiParent = this.MdiParent;
                    xianshi.Show();
                }
                else
                {
                  xianshi.Activate();
                  xs();
                }
            }//当子窗体“显示”未打开时,点击打开;当子窗体“显示”打开时,点击将“显示”窗体设为当前窗体。
    共工之臣曰相柳氏,九首,以食于九山。相柳之所抵,厥为泽溪。禹杀相柳,其血腥,不可以树五谷种。禹厥之,三仞三沮,乃以为众帝之台。
    2010年4月26日 3:14
  • 你好!

         Hide的窗体并没有真正的销毁,所以不用判断是否存在了!

         判断一个窗体是否已经实例化,可以:

         if(frmMain==null)


    周雪峰
    2010年4月26日 11:26
    版主

全部回复

  • 判断窗体是否是NULL

    http://blog.csdn.net/Knight94/archive/2006/05/24/752783.aspx


    努力+方法=成功
    2010年4月26日 3:11
  • public 显示 xianshi = null;
           private void button4_Click(object sender, EventArgs e)
            {
                if ( xianshi == null||xianshi.IsDisposed)
                {
                    xianshi = new 显示(this);
                    xianshi.MdiParent = this.MdiParent;
                    xianshi.Show();
                }
                else
                {
                  xianshi.Activate();
                  xs();
                }
            }//当子窗体“显示”未打开时,点击打开;当子窗体“显示”打开时,点击将“显示”窗体设为当前窗体。
    共工之臣曰相柳氏,九首,以食于九山。相柳之所抵,厥为泽溪。禹杀相柳,其血腥,不可以树五谷种。禹厥之,三仞三沮,乃以为众帝之台。
    2010年4月26日 3:14
  • 你好!

         Hide的窗体并没有真正的销毁,所以不用判断是否存在了!

         判断一个窗体是否已经实例化,可以:

         if(frmMain==null)


    周雪峰
    2010年4月26日 11:26
    版主
  • 上面大哥的那个可行 说实话 有个方法我也不懂什么意思 我的见解是可以这样:(笨方法) 建一个class类 里面写一个静态的变量 类型随便 如 public static String kg=null; 然后在隐藏功能的下面 写上 类名.kg="false" 在想要显示的那个BUTTON 下写上 if(类名.kg="false"){ form.隐藏=true; } 貌似可行 新人见解 不对的话请见谅
    2010年4月26日 12:21
  • 小崔的应该也行的哦。呵呵。。
    C#初学者,所以提的问题对各位前辈朋友来说可能很简单,也可能问法也不对,非常期待大家的回答……
    2010年4月26日 15:32
  • 你好!

         Hide的窗体并没有真正的销毁,所以不用判断是否存在了!

         判断一个窗体是否已经实例化,可以:

         if(frmMain==null)


    周雪峰

    那如果我是把它点那个X 关掉的话,是不是也同时要判断下 IsDisposed ?
    C#初学者,所以提的问题对各位前辈朋友来说可能很简单,也可能问法也不对,非常期待大家的回答……
    2010年4月26日 15:33
  • 点那个X 关掉的话,那个窗体就是被释放关闭了。

    当然你可以在它的窗口关闭事件里改写代码,让点X的时候执行隐藏而不是关闭!

    2010年4月27日 1:11
  • 你好!

         这个时候应该使用if (frmMain.IsDisposed)来判断,有可能关闭窗体后窗体并不是马上为null:

    Form2 form2 = new Form2();
                form2.Show();


                Thread.Sleep(3000);
                form2.Close();
                if (form2==null)  //这里form2!=null
                    MessageBox.Show("from2==null");


    周雪峰
    2010年4月27日 2:01
    版主