2012-01-25 25 views
0

ListViewListViewItemが仮想モードになっています。ListViewItemを仮想モードListViewから取得する方法は?

だろうコール:アンドレアスHelbergは、私はそれを行うことは許されないことを決めたことを除いて

//Get ListViewItem corresponding to index 37 

var e = new RetrieveVirtualItemEventArgs(37); 
listView.RetrieveVirtualItem(sender, e); 

return e.Item; 

仮想モードのListViewのインデックスに対応するListViewItemを取得するにはどうすればよいですか?

+0

あなたはAnders Hejlsbergを欲しがると思います。彼が 'Windows Forms'技術にdesicional/architectualな影響を与えているとは思わないでください。 – Tigran

+0

@TigranそれはC#言語の特質です。この場合のコードは、禁止されているイベントハンドラを呼び出そうとしています。 –

+1

あなたはこれを見ましたか:http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.virtualmode.aspx? – Tigran

答えて

1

ListViewから継承するクラスを継承しなければならない場合があります(これは、ListViewクラスを直接使用していた場合、おそらく基になるキャッシュにアクセスするためですそして特定のインデックスにある項目を取得するためのメカニズムがマニフェストになります)、公共のラッパー関数を作成し、あなたのコード例とそこからのリターン.Itemに指定され、その

RetrieveVirtualItemEventArgs args = new RetrieveVirtualItemEventArgs(37); 
this.OnRetrieveVirtualItem(args); 
return args.Item; 
パラメータで保護 OnRetrieveVirtualItem関数を呼び出します
関連する問題