非静态方法的调用问题?我现在在FrmMain上有一个非静态的方法initLv_obj,我在另一个窗体里不用new FrmMain要怎么去调用?注:不用new 的原因是因为用了后会再次重绘FrmMain.

解决方案 »

  1.   

    除非你在FrmMain里的构造函数里写了绘制FrmMain的代码
    否则New的时候怎么可能重绘如果你的另一个窗体是在FrmMain中创建的
    那么initLv_obj可以使用委托传到另一个窗体中
    并且调用的时候保证FrmMain不能关闭否则 就不知道了 或许使用反射也能搞定也说不定
      

  2.   

    如果又不能new
    那你就把这个方法单独做在一个类里面
    大家都调用
    new也就new这个类
      

  3.   

    Form1:
            public static Form1 fm1;
            public Form1()
            {
                InitializeComponent();
                fm1 = this;
                Form2 fm2 = new Form2();
                fm2.Show();
                
            }
            public initLv_obj()
            {
             ................
            }
    ---------------------------------------------------------
     Form2:
              Form1.fm1.initLv_obj()
           请参考:愚翁专栏 ---主窗体和子窗体之间如何相互操作对方的控件
      

  4.   

    把FrmMain的对象的指针this传给另外的窗体就好了。
      

  5.   

    方法该为PUBLIC,在另外一个窗体调用就可以了,或者写个委托