当从A窗体点击一个按钮,执行Dialog1.ShowDialog()打开了B窗体,在B窗体上点击一个按钮,在其事件中调用A窗体中的一个函数,以实现刷新A窗体,但A窗体没有反应,可能刷新的是A窗体的一个新实例,而不是A窗体的当前实例,请问如何将A窗体的当前实例指针this传递到B窗体中。关键是还有没有办法像VB那样,在B窗体中调用这个函数以直接实现刷新A窗体。

解决方案 »

  1.   

    B窗体的构造函数中增加A窗体类型的参数,这样在A中实例化B时可将this传递到B窗体也可以在B窗体中增加事件,在A窗体中实现B窗体事件的处理
      

  2.   

    这个问题我也想知道把B窗体的textbox.text传入A窗体的label.text必须要把B窗体退出 A中才能显示出来
      

  3.   

    class FormB: Form
    {
        public FormA forma = null;.....
    }class FormA : Form
    {    protected void buton1_click(object sender, EventArg arg)
        {
            FormB formb = new FormB();
            formb.forma = this;
            formb.ShowDialog();
        } 
    }这样在FormB不就可以使用FromA实例的引用了。
      

  4.   

    刷新的话调用Invalidate 试一试。textbox.Invalidate()