2009-07-17 87 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