我有个主窗体是frm1
两个附窗体分别是frm2和frm3
程序运行显示frm1,当我点击frm1某个按钮的时候弹出frm2,关闭frm2,再点另一个按钮弹出frm3
而现在我想当关闭frm2的时候就弹出frm3,但不是通过frm2弹出,就是frm2关闭后执行frm1中的弹出frm3那个按钮的单击事件,这个可以实现吗?

解决方案 »

  1.   

    试试这个
      private void frm2_FormClosing(object sender, FormClosingEventArgs e)
            {
                frm3 fm = new frm3();
                fm.ShowDialog();
                this.Close();
            }
      

  2.   

    楼上的肯定不行
    frm3 在frm1中实例化了没?
      

  3.   

    不是用frm2的事件调用frm3
    我想这样,在frm2的关闭按钮里:
    private void btnCancel_Click(object sender, EventArgs e)
            {
                frm2.Close();
                frm1的单击按钮执行它的事件;
            }就是你要是弹出frm3不是得frm2关闭后点击frm1的按钮,才能执行frm1按钮中的语句吗,现在是不用点就自动执行frm1按钮中的语句,这个得怎么弄
      

  4.   

    用delegate
    我把代码写给你,==
      

  5.   

    tjvictor(终于升星了,向两星奋斗) 
    谢谢了,我还想问问你,怎么才能升级,就是多个星什么的,是多回帖吗
    我每发一个帖子就要给人家分,现在系统提示我必须得把2006年的帖子都结了,可是我这一算,我一个帖子给20分,5个帖子我分就没了啊,没了到不要紧,我就是想问问,如果我没分了,那我还能问问题吗?
    还有有的帖子就一个人给我回了,并且是“我帮你顶这样的话”,那这个帖子怎么算啊,总不能这样也给他分吧?
      

  6.   

    form3是第一个窗体,form4是第二个,form5是第三个
    form3中的代码
    private void OpenForm4_Click(object sender, System.EventArgs e)
    {
    Form4 form4 = new Form4();
    form4.closeEvent = new tryForm.Form4.CloseEvent(OpenForm5_Click);
    form4.Show();
    }
    在vs2003中測試通過 private void OpenForm5_Click(object sender, System.EventArgs e)
    {
    Form5 form5 = new Form5();
    form5.Show();
    }
    Form4中的代码
    public delegate void CloseEvent(object sender, System.EventArgs e);
    public CloseEvent closeEvent = null;
    private void button1_Click(object sender, System.EventArgs e)
    {
    this.Close();
    } private void Form4_Load(object sender, System.EventArgs e)
    {
    this.button1.Click += new EventHandler(closeEvent);
    }
      

  7.   

    to 我还想问问你,怎么才能升级,就是多个星什么的,是多回帖吗回答问题又多又好,别人就给你分,你的积分多了,就升星了。to 如果我没分了,那我还能问问题吗?可以问,但是没有分的帖子,恐怕观注的人就不多了。
      

  8.   

    Form4中的代码
    public delegate void CloseEvent(object sender, System.EventArgs e);
    public CloseEvent closeEvent = null;form4.closeEvent = new tryForm.Form4.CloseEvent(OpenForm5_Click);
    ————————————————————————————————这个语句在.net2005中不通过,form4中我已经定义这个委托了,但还是通不过
    打form4.后,没有closeEvent选项