Form2和Form3的构造函数分别为
public Form2(Form1 frmForm1){...}
public Form3(Form1 frmForm1){...}
同时Form2和Form3的父对象Form1里有其子对象Form2和Form3的引用,因此从Form3通过父对象Form1可以拿到子对象Form2的引用,自然可以刷新其中的控件。

解决方案 »

  1.   

    你如果愿意的话,可以把Form2中的组件声明成public——虽然这样不太符合面向对象的编程思想
      

  2.   

    To寻梦旅人:我试过声明成public,但是不行.我开始在form3里是这样引用的.
    Form2 Form2=new Form2();
    Form2.panel1.Controls.clear(); //panel1为public
    但是不行.
      

  3.   

    当然不行,给你个例子:首先,你的form2中的控件必须是public的然后在你的form2的构造函数中要传递一个form3的值如下:Form2(Form3 f3)
    {
      ......
    }这样才你调用form2的构造函数的使用,就可以和form3通讯了如下:在form3中调用:Form2 f2=new Form2(this)//这里传递的就是form3这样你就可以在form2里改变form3的外观了.
      

  4.   

    http://www.c-sharpcorner.com/Code/2002/Aug/PassingDataInForms.asp