我的自定义控件里,有一个集合类的属性,我在集合类里写的ADD方法,怎样能做到 自定义控件.集合类属性.add(类) 后让自定义控件里的集合类更新,并触发自定义里的方法

解决方案 »

  1.   

    你这个说的有点不清楚啊,
    1) 自定义控件.集合类属性.add(类)这个只要你定义的是集合类,他就可以实现了。
    2) 让自定义控件里的集合类更新,并触发自定义里的方法。 这个你在ADD里写入这些方法就OK啦
      

  2.   

    如果你的这个集合类是采用继承ARRAYLIST这样的,就要:
    public int Add(object i)
    {
       base.Add(i);
       UpdateYourCollection(i);
       CustomMethod(i);
    }如果你是采用在自己的类里加入ARRAYLSIT并通过索引器实现的,那么就直接在添加方法后加入
       UpdateYourCollection(i);
       CustomMethod(i);
      

  3.   

    好象不对啊,我是这样的,我自定义一个控件 A,里面需要加入另外一个自定义控件类 B,
    我就从collectionbase继承出一个Bcollection,并把Bcollection作为A里的一个属性Bs,然后在Bcollection中加入add方法,
    public int add(B b)
    {
     List.add(b);
    }
    我说的意思是,我如何使用用A.Bs.add(b),能让A里面的Bs同步更新
      

  4.   

    设置自定义控件B的作用域为PUBLIC,就可以了VS系统添加了控件后默认定义为:
    private ControlBType controlB;change it to:
    public ControlBType controlB;
      

  5.   

    非常感谢楼上的,可是好象还是不行,A上的B控件数量是不定的,再说我现在主要的是程序运行的时候调用BS的add方法时,如何将A上声明B
      

  6.   

    1.你的A如果想使用B做為內部成員,則A應和B在同一個命名空間,或引用B的命名空問.
    2.如果你的BS對應的私有變量是一個AyyayList,則使用Add方法時,AyyayList自動刷新數量成員.
      如果用collectionbase來繼承,在空間上不好控制,有上下限的限制,所以最好用ArrayList.