2009-07-17 90 views
0

我想创建一个继承自ListViewItemCollection的类,并且出现此错误:“方法'ListViewItemCollection'没有重载需要'0'参数”。继承自ListViewItemCollection

任何想法如何解决它或如何从这个类继承。所有建议都欢迎。问候!

+1

我可以告诉马上,这是你的构造器有问题....但是,你可以发布你的派生类代码.. – James 2009-07-17 13:24:23

回答

3

Frederik的答案是正确的,ListViewItemCollection类需要一个所有者,即一个ListView对象被传递给构造函数。

不过,我认为他的声明是错误的,你可能需要做:

public class MyListViewItemCollection : ListView.ListViewItemCollection 
{ 
    public MyListViewItemCollection(ListView owner) 
     : base(owner) 
    { 
    } 
} 
+0

确实; ListViewItemCollection在ListView类中声明。然而,我的代码是直接写在SO编辑器中的,所以我没有用编译器或任何其他方法对它进行验证。无论如何,我已经适应了它。 :) – 2009-07-17 13:40:18

1

看来ListViewItemCollection类没有公共的默认构造函数。

这意味着您将不得不在您的类中显式创建一个构造函数,该构造函数调用ListViewItemCollection类中的可访问(受保护或公共)构造函数之一。

ListViewItemCollection类确实有一个公共构造函数,它将ListView作为参数。

所以,你的类可以是这样的:

public class MyListViewItemCollection : ListView.ListViewItemCollection 
{ 
    public MyListViewItemCollection (ListView owner) : base(owner) 
    {} 
} 

编辑:这需要一个ListView作为参数的构造函数,是可访问的唯一的构造,所以你必须要做到像我上面的例子。

+0

ListViewItemCollection是在ListView类型中声明的,因此您需要将其包含在声明中:“ListView.ListViewItemCollection”而不是“ListViewItemCollection”。 – 2009-07-17 13:38:47