|
分類:[C#]
2013/04/29(Mon) 17:02:29 編集(投稿者) 2013/04/29(Mon) 17:02:21 編集(投稿者)
お世話になります。ランランと申します。 C#で仮想リストビューを使用してファイルの一覧を表示しています。 リストビューは詳細表示にしています。
描画処理が遅いことがあり、RetrieveVirtualItemイベントが発生したタイミングで 発生したことをトレース出力してみたのですが、1つのListViewItemに対して、複数回の 描画が走っていることがわかりました。
※最後の数値は関数の引数をもとにしたアイテムインデックス(e.ItemIndex)です。
16:38:56:595 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:595 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:595 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:595 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:595 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:595 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:595 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:595 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:595 FNC : lvFile1_RetrieveVirtualItem 0 lvFile_DrawSubItem 16:38:56:595 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:595 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:610 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:610 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:610 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:610 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:610 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:610 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:610 FNC : lvFile1_RetrieveVirtualItem 0 lvFile_DrawSubItem 16:38:56:610 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:610 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:610 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:610 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:610 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:626 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:626 FNC : lvFile1_RetrieveVirtualItem 0 lvFile_DrawSubItem 16:38:56:626 FNC : lvFile1_RetrieveVirtualItem 0 16:38:56:626 FNC : lvFile1_RetrieveVirtualItem 0
上記のように、1個のファイルに対して、27回もイベントが発生しています。 ※lvFile_DrawSubItemはListViewのDrawSubItemイベントに登録している サブアイテム表示用処理です。
複数のファイルがあると、上記のセットが表示するアイテム(ファイル)分繰り返されていきます。 RetrieveVirtualItem は1個のアイテムに対して1回起きればいいように思いますが、なぜ このようなことが起こるのでしょうか?
.NET2010 C# win7
よろしくお願いしますm(__)m
|