A类内的方法,要想办法得到Form的实例才行啊

解决方案 »

  1.   

    怎么又是这个帖子.......按照你的格式,需要向A类传入Form的实例namespace Test
    {
      public class F_Main : Form
      {
      .......
      }  public class A
    {
      F_Main f_main;
      public A(F_Main form) //可以在构造函数中传入F_Main实例
      {
      f_main=form;
      }  public void function()
      {
      //加入自己访问ListView的代码,,(f_main.ListView即可)
      }
    }}
      

  2.   

    public class A
    {
      F_Main f_main;
      public A(F_Main form) //可以在构造函数中传入F_Main实例
      {
      //对form。ListView操作;
      
      }
    }
      

  3.   

    主要是类A,使得类A中具有From的实例....
      

  4.   

    把主窗体的LISTVIEW访问权限改为PUBLIC或INTERNAL,在A类的构造函数构造主窗体,如:
    class frmMain
    {}
    class A
    {
    frmMain frmmain;public A(frmMain frmmain)
    {
    this.frmmain = frmmain;
    }
      

  5.   

    直接把ListView当参数传入A即可,不需要传Form
    上面的回复有些误导...namespace Test
    {
      public class F_Main : Form
      {
         F_Main()
    {
       A objA = new A(this.listView);
    }
      }  public class A
      {
         ListView lv;
         A(ListView listView)
    {
       lv = listView;
    }
      }
    }
      

  6.   

    把要用到的LISTVIEW访问权限改为PUBLIC
    这样在主窗体中可以调用那个listview了。。
    不过这样可能存在数据上的不安全
      

  7.   

    在界面层上调用treeview比较合理,在class A定义事件,在F_Main定义事件响应函数class A
    {
        internal event Action TreeViewUpdated;
    }class F_Main
    {
         public F_Main()
         {
            A a = new A();
            a.TreeViewUpdated += new Action(OnTreeViewUpdated);
         }     private void OnTreeViewUpdated()
         {
             if (InvokeRequied)
             {
                OnTreeViewUpdated();
                return;
             }
             // add your code
         }
    }最好不要互相依赖,F_Main依赖Class A,而Class A又依赖F_Main, 除非是面向接口,用事件就好多了
      

  8.   

    可以用句柄,在类A中保存一下ListView的句柄,通过句柄得到控件,然后对控件操作
    Class A
    {
       public static intPtr ipListView=new intPtr();
       public void AddItem(intPtr handle)
       {
                Control c=Control.FromChildHandle(Handle);
                ListView lv = (ListView)c;
                lv.Items.Add(...);
       }}