我有两个窗体  第一个窗体show出第二个窗体 同事第一个窗体隐藏  然后在第二个窗体怎么写代码能让第一个窗体显示

解决方案 »

  1.   

    我试过在窗体2里 new 窗体一
    然后 用这个对象执行visible=true  发现控制的不是原来的窗体1 而是 新的窗体一也就是说 如果用new的话好像就是3个窗体了
      

  2.   

    处理第一个窗体中的按钮事件Show第二个窗体并隐藏第一个窗体private void button1_Click(object sender, System.EventArgs e)
    {
    Form2 f = new Form2();
    f.Tag = this;
    this.Hide();
    f.Show();
    }
    处理第二个窗体中的按钮事件,关闭第二个窗体并显示第一个窗体private void button1_Click(object sender, System.EventArgs e)
    {
    Form1 f = (Form1)this.Tag;
    this.Close();
    f.Show();
    }
      

  3.   

    确实好用~~能解释一下原理吗???
    Tag不就是一个字符串吗??也能返回Form?
      

  4.   

    通过事件来实现,给显示第二个窗口的地方添加如下代码:            Form2 form = new Form2();
                form.FormClosed += (obj, args) => this.Show();
                form.Show();
                this.Hide();
      

  5.   

    创建两个窗体分别为Form1和Form2,各添加一个按钮,Form1按钮事件为:
            private void button1_Click(object sender, EventArgs e)
            {
                Form2 fm = new Form2();
                fm.Show();
                this.Hide();
            }
    Form2按钮事件为:
            private void button1_Click(object sender, EventArgs e)
            {
                Form1 fm = new Form1();
                fm.Show();
                this.Hide();
            }
    即可实现你的功能。
      

  6.   

    看这里http://topic.csdn.net/u/20070110/09/f5fc902d-6148-429d-bc81-78cfb00b2d59.html
      

  7.   

    这样做也行//Form1
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                Form2 frm2 = new Form2(this);
                frm2.Show();
                this.Hide();
            }
        }//Form2
        public partial class Form2 : Form
        {
            Form1 frm1 = null;
            public Form2(Form1 fm)
            {
                InitializeComponent();
                frm1 = fm;
            }        private void button1_Click(object sender, EventArgs e)
            {
                this.Close();
                frm1.Show();
            }
        }