我有窗体:Form1,Form2。这两个窗体都添加了同一个自定义控件
在这个自定义控件中包含一个按钮,当点击这个按钮后,就跳到Form3界面
在Form3上我添加了一个标签,取名为返回,当点击这个标签就返回到它的上一个窗体
比如:Form1-->Form3,点击返回就跳到Form1...如果是Form2-->Form3,点击返回则跳到Form2
应该怎么写代码?
我是菜鸟,高手帮帮我!!!

解决方案 »

  1.   

    在Form1和2的按钮事件里面添加如下:
    this.hide();
    Form3 frm = new Form3();
    frm.show(this);在Form3的Lable.Click事件里面添加如下:
    for(int iCount = Application.OpenForms.Count -1;iCount>0;i--)
    {
        if(Application.OpenForms[iCount] != Form3)
        {
           Application.OpenForms[iCount].show();
        }
    }
    this.Dispose();
      

  2.   

    if(Application.OpenForms[iCount] != Form3) 
        { 
          Application.OpenForms[iCount].show(); 
          break;
        } 
      

  3.   

    3楼的仁兄,你的代码没有通过测试吧
    if(Application.OpenForms[iCount] != Form3) 
        { 
          Application.OpenForms[iCount].show(); 
          break; 
        } 
    就上面的代码都有两处错误!!!
    1是form3不能当做变量
    2是SHOW那里也不行
      

  4.   

    通过这种方法定义你的UserControl,你会发现它多了一个自定义事件,然后你给那个自定义事件button1Click添加方法即可实现你的效果。
            public event EventHandler button1Click;
     
            public UserControl1()
            {
                InitializeComponent();
                button1.Click += new EventHandler(button1_Click);
            }        void button1_Click(object sender, EventArgs e)
            {
                if (button1Click != null)
                {
                    button1Click(sender, e);
                }
            }
      

  5.   

    晕倒,哪里有新手上来就用UserControl的,我看你用了UserControl还以为你有一定的功底呢。建议你先使用普通的Button控件来实现多窗体的切换吧。
      

  6.   

    我按照你的意思做了,刚才我没有重新编译,所以没有看到那个新增的事件,现在我做出来了
    不过为什么我在这个button1Click里添加这样的代码
    chosn_form frm = new chosn_form();
                frm.Owner = this;
                this.Hide();
                frm.Show();
    然后在Form3中返回的返回按钮里添加代码
    this.Owner.show();
    this.close();
    运行后我在Form1中点击按钮后,会弹出两个Form3。为什么会这样?
      

  7.   

    这位大哥的做法是对的,不过会弹出两个窗口来
    经过很久的思考
    我把他的这句代码button1Click(sender, e);
    修改为button1Click(this, e);
    可以得到我想要的效果
    谢谢大家的帮忙
      

  8.   

    不能那么说山,就他都帮过我,呵呵,对于我这样的新手,没有资格说什么的!
    至于我提出的修改的事情,我开始的时候也没有搞懂,可是我想了很久,把那个修改为this后,就可以了
    我也不知道到底是我的哪里出了问题!
    最关键的是我这样修改了,就只会弹出一个窗口了,不管它了。