広告

.NETの仮想リスト機能をちょっとだけ実用的にしたListViewコントロール – VirtualListView

ListViewに大量のリストを追加すると、パフォーマンスがかなり落ちますよね。

ListViewコントロールの仮想リスト機能を使うとパフォーマンスは改善するのですが、使い勝手がいまいちです。

なので、ちょっとだけ実用的に使えるようにカスタマイズしたコントロールを作成しました。

 

サンプル

左が仮想リストビューで右が標準リストビューです。

見た目は、まったく変わりませんが、スクロールバーを使ってリストを上下に動かしてみてください。仮想リストビューの方は、さくさく動くの対して、標準リストビューでは、もたもたした動きになることが分かると思います。

VirtualListView

ボタンをクリックすると、リストを1万件ずつ作成します。

「描画停止あり」と「描画停止なし」の違いは、リスト生成前にBeginUpdateメソッドを実行し、リスト生成後にEndUpdateメソッドを実行するかしないかです。2つのメソッドを実行することで、リスト生成時のパフォーマンスが向上します。

「描画停止あり」の場合、「描画停止なし」の場合、どちらも仮想リストビューの方が高速に動作することがわかります。特に、「描画停止なし」では速度の差が大きくなっています。

ソースコード

以下からソースファイルをダウンロード出来ます。ソースのライセンスはGPLです。

“VirtualListViewサンプルソース” をダウンロード VirtualListViewTest.zip – 1246回ダウンロードされました – 46 kB

ダウンロード出来るソリューションについて

このソリューションは、コントロールが実装されている「VirtualListView」プロジェクトとコントロールのテスト用プロジェクト「VirtualListViewTest」の2つで出来ています。

開発言語はVB.NETで、開発環境はVisual Studio 2005です。

「VirtualListView」プロジェクトは、ListViewコントロールを継承したVirtualListViewコントロールと、仮想リストビュー用のListViewコレクションのクラスで出来ています。

VirtualListViewコントロールについて

  • VirtualListViewItem … 仮想リストビューのアイテムクラスです。
  • VirtualListViewItemCollection … 仮想リストビューのアイテムコレクションです。
  • VirtualListView … 仮想リストビューコントロールの本体です。

VirtualListViewのアイテムには、単純に配列を使ってもよかったのですが、せっかくですので、コレクションクラスを作ったものにしました。

アイテムの追加は、Addメソッドを使って行います。通常のListViewでアイテムを追加するのと同じ感覚でアイテムを追加する事が出来ます。

多くの機能は実装していませんが、他にも、Clearメソッドでリストのクリア、Sortメソッドでアイテムの並び替えを行うことが出来ます。

リストの並び替えについては、以下のサイトを参考にしてください。

ListViewの項目を並び替える: .NET Tips: C#, VB.NET, Visual Studio

Share on Facebook

  1. コメントはありません。

  1. トラックバックはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)
*

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

広告

Facebook

カレンダー

2011年2月
« 1月   3月 »
 12345
6789101112
13141516171819
20212223242526
2728  

最近の投稿

アーカイブ