窗体A中有一树控件,从A里打开窗体B(showdialog()),窗体B中打开窗体C(showdialog())后窗体B关闭,窗体C中打开窗体D(ShowDialog())后窗体C关闭。怎么实现在窗体D关闭的时候刷新窗体A中的树。请高手帮忙!

解决方案 »

  1.   

    Show的吧。ShowDialog你怎么有的点的啊?发送消息是个不错的方法。
      

  2.   

    To diandian82(点点):
    窗体B.dispose();
    窗体C.showdialog();
    就可以了啊。
      

  3.   

    在同一个进程里面可以考虑用单例模式写窗体A的方法,
    在窗体A中公开刷新树的方法,
    然后在窗体D的Closing事件中调用单例函数得到窗体A的实例,调用刷新方法.
      

  4.   

    窗体A的构造方式
    private Form1()
    {
    //
    // Required for Windows Form Designer support
    //
    InitializeComponent(); //
    // TODO: Add any constructor code after InitializeComponent call
    //
    } static public Form1 m_form = null;
    static public Form1 CreateInstance 
    {
    get
    {
    if (m_form == null)
    {
    m_form = new Form1();
    }
    return m_form;
    }
    set
    {}
    }
      

  5.   

    // 窗体A的“刷新方法”测试方法而已
    internal void SetText(string txt)
    {
    this.button1.Text = txt;
    }// 窗体D的退出事件
    private void Form2_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {   
    Form1 frm = Form1.CreateInstance;
    frm.SetText("ddddd");
    e.Cancel = false;
    }
      

  6.   

    To:  Kshatriya(无聊)
      
      执行完你的方法,在form2关闭的时候并没有刷新button1的text啊。
      

  7.   

    // 窗体D的退出事件
    private void Form2_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {   
    Form1 frm = Form1.CreateInstance;
    frm.SetText("ddddd");
    e.Cancel = false;
    }上的代码是执行了,但是form1中的button1的text没有改变。