我有两个窗体:form1和form2.
form1是默认的启动窗体。
现在我想在form2里面干完一些事情以后,在关闭form2的时候。触发form1里面的一些事件。
请问
1、我怎么在form1里面获取form2关闭的事件?
2、怎么在form2里面触发form1里面的事件?

解决方案 »

  1.   

     如果form2  改成Dialog 就可以了吧
      

  2.   

    Form1窗体启动Form2时候
    Form2 f2=new Form2();
    f2.owner=this;
    DialogResult dr=f2.ShowDiaglo();
    if(dr==DialogResult.OK)
    {
    //Form1需要调用的事件
    }Form2窗体关闭时候
    this.DialogResult = DialogResult.OK;
    this.Close();
    以上就是我常用的方法,也请大家指教
      

  3.   

    如果form2是form1里启动的,可以在form1用showDialog方式启动。把你想做的操作加到showDialog之后就可。
    如果不是上述情况,也好弄,比如在form2的FormClosing事件里调用form1的一个方法等。
      

  4.   

    在另一个窗体声明一个窗体引用,new的时候指向
      

  5.   

    form1是父窗体   调用了form2   那么form1对象里面就有form2对象
      你可以直接操作form2    
    如果你使用 form2.showDialog()   那么你当然可以知道什么时候form2关闭
    另外 如果你想在form2中触发form1的事件, 你就用事件委托啊    
    首先在form2中声明一个事件   
    form2 = new Form2();
    form2.event += new eventHandler(form2_event);
    private void form2_event()
    {
    }这样不就可以了      你应该去看看事件
      

  6.   

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }    private void button1_Click(object sender, EventArgs e)
        {
            Form2 oFrm = new Form2();
            oFrm.FormClosed += new FormClosedEventHandler(oFrm_FormClosed);
            oFrm.Show();
        }    private void oFrm_FormClosed(object sender, FormClosedEventArgs e)
        {
            MessageBox.Show("ok");
        }
    }