本人在设计一个程序,需要测试一个功能。
在form1中:
form1的一个button启动form2.然后在form1种的一个程序向form2中的textBox显示很多信息。问题是:如果没有启动form2,程序运行到这里将会出问题。所以,我想到了这样的方法:设置一个form2打开与否的 bool 变量 form2显示 = false;
if(form2显示)  // "form2显示"为 true
{
……
向form2中的textBox显示信息。
}而且,在form1的按钮的事件中(按钮按下,启动form2),
form2显示 = ture;但是这里有个问题,如果form2打开以后,又关闭了(关闭在form2上使用按钮关闭或者使用右上角的x关闭)。如何控制form2显示变成false.
哪位朋友如果有解决这个问题的,请多多指教!总之,我最好能够在form1里面了解form2的关闭。注:由于程序的问题,我这里不能使用"form2.IsDisposed".

解决方案 »

  1.   

    你form1的程序向form1显示信息的时候 你先找form2这个窗体 找到了再发啊
      

  2.   

    用wondows api findWind 找
      

  3.   

    按照你的需求,form2里面放一个静态变量 bool 显示否.
    class Form2
    {
      static 显示否 = false;
      public static void DoShow(Form2 frm)
      {
        frm.Show();
        显示否 = true;
      }  //关闭事件中
      private void On_FormClosing(object o,sender,e)
      {
         显示否 = false;
      }
    }
      

  4.   

    要看Form2状态 通过Form2.显示否就可以看到了
      

  5.   

    不用自己设置什么变量可以看form2是不是显示了吗?能不能说明白一点!谢谢了
      

  6.   

    通过事件:            Form2 frm = new Form2();
                frm.FormClosing += delegate
                {
                    form2显示 = false;
                };
      

  7.   

    还是FormClosed事件比较保险,因为FormClosing事件可以将Cancel属性取消关闭:            Form2 frm = new Form2();
                frm.FormClosed += delegate
                {
                    form2显示 = false;
                };
      

  8.   


    这个方法很好用!谢了!hustcyb的方法我去试一下!谢谢两位!
    结贴了!
      

  9.   

    hustcyb的方法也很好用啊!谢谢