1.from1在开始的时候就隐藏了,弹出了from2,from2的button1可以显示from1
2.from2的button2创建另一个窗体from3
3.在关闭from3的时候其实是将from3隐藏了而已。
4.再按buttuon2的时候显示from3.以上这个要求怎么弄阿?第一点我已经实现了,但是后面的就不行了。from1:load
            this.Hide();
            Form2 child = new Form2();
            child.Show(this);from2:button1
            this.Owner.Show();
            this.Owner.WindowState = FormWindowState.Normal;
            this.Owner.Focus();在线等各位高手

解决方案 »

  1.   

    修改frm3的dipose函数中内容为,this.hide();
    button2的事件:
     foreach (Form cForm in Application.OpenForms)
               {
                   if (cForm.Name == 你的窗体名)
                        {
                            cForm.Activate();
                            cForm.WindowState = FormWindowState.Normal;
                            return;
                        }
                }
    新建窗体代码://end of 事件
      

  2.   

    form2中,定于:Form1 _f1;
    构造函数
    public void Form2(Form1 f1)
    {
      //默认构造函数中别的函数.....  //保留form1引用
      _f1 = f1;
    }form1中:
    new Form2(this).Show();
    this.Hide();form2 buttonClick
    _f1.Show();
      

  3.   

    写个变量,用来保存Form3,button3点击的时候检查变量,如果为null,创建新的fomr3,并赋值给变量。如果不为null,则调用其Show方法。
      

  4.   

    定义属性 Form3 f3=new Form3()
    if(f3.Visible == false)
     {
         f3.Visible = false;
     }
    或用EnumWindowsProc获取窗体实现显示
    参考
      

  5.   


     public partial class Form2 : Form
        {
            Form3 frm;
            int index=1;
            public Form2()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                this.Owner.Show();
                this.Owner.WindowState = FormWindowState.Normal;
                this.Owner.Focus(); 
            }        private void button2_Click(object sender, EventArgs e)
            {
                if(index==1)
                {
                    frm= new Form3();
                    index++;
                }
                else
                {
                    frm.Show(this);
                    index=1;
                }
            }
        }
      

  6.   

    你show出来的时候是另建一个了阿~
      

  7.   

    这种方法很好用,在if语句里面加个cForm.Show();隐藏的窗体就显示出来了。