form1生成form2,form2生成form3.现在要在form3中调用form1中的一个函数funx(int a)怎么做?

解决方案 »

  1.   

    晕了 form3中建个form1的实例
    form1 form1 = new form1();
    form1.funx(int "");
      

  2.   

    如果该方法是实例方法,则form3里一定要有form1的引用,可以通过构造函数或者属性把form1的引用传过来(先传到form2 再到form3)
    如果是静态方法就简单多了,Form1.fun();
      

  3.   

    form a=new form();
    a.funx()
      

  4.   

    如果只是使一个方法,不多最先的form1修改:
    form1 form1 = new form1();
    form1.funx(int "");
    form1.Dispose();//释放;如果你要修该最先的form1,得用其他方法;
    如:
    1.在form2中添加属性和字段
    Form1 f = null;
    gForm1
    {
    set{f=value}

    2.form1在打开form2之前对f赋值;
    Form2 form2 = new Form2();
    form2.gForm1 = this;
    form2.Show();3.在form3中添加属性和字段;
    Form1 f = null;
    hForm1
    {
    set{f=value}
    } 4.fom2中打开form3同样操作;Form3 form3 = new Form3 ();
    Form3 .hForm1 = f;
    Form3 .Show();5.最后你就可以修改已经带开的form1了;
      

  5.   

    在Form1里面对自己做静态public static Form1 frm = new Form1(),在Form3就可以通过Form1.frm.fun()去调用了!
      

  6.   

    一个是使用静态方法的调用,也是做简单的调用直接:Form1.Fun();
    实例方法则要应用Form1的实例,
    form1 form1 = new form1();
    form1.funx(int "");
    form1.Dispose();//释放;
      

  7.   

    TO:
    xiao_p(曼沙珠华) 是想要调用原来的Form1实例(且这个函数会改Form1实例上的一些东西)
    leirenqi(混混) '用事件委托方式',怎么用的呢
     _jfeng(静心) 以下代码在form2的什么地方写呢
    Form1 f = null;
    gForm1
    {
    set{f=value}

    我在public Form2()
    {
    //
    // Windows 窗体设计器支持所必需的
    //
    InitializeComponent(); //
    // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
    //
    }
    的下面写入的结果在
    set {f = value;} 行报错:应输入 ;
      

  8.   

    public static Form1 form = new Form1(),
    Form1.form.fun)还要注意一定要把你调用的函数和变量改为PUBLIC!!!
      

  9.   

    //全局变量
    private Form1 f = null;
    public gForm1
    {
    set{f=value};