質問

時々約 10000 個の項目を入れる必要がある ListView があります。ListViews はこれをうまく処理できず、項目を並べ替えたり描画したりしている間、数秒間フリーズします。アイテムを個別に追加すると、状況はさらに悪化し、1 分近くロックされてしまいます。

これを回避するには、ListView を表示する前に ListView に値を設定してみようと考えましたが、残念ながら別のアイデアがあります。ListView を含むパネルを表示したときにのみ描画が開始されるため、プログラムが数秒間ハングします。

この遅延を解消する方法について何かアイデアはありますか?それとも、大量のデータを表示するのに適した、比較的使いやすい別のコンポーネントはありますか?

役に立ちましたか?

解決

を使用する必要があります。 仮想モード.

他のヒント

良い。バックグラウンドでコンテンツをロードしたいだけの場合は、スレッドを試して ListView にデータを取り込み、フォームをロードできるようにします。

Application.DoEvents(); を入れても一時停止は発生しないと思います。項目をロードしているとき (これにより、フォームが再描画してイベントを受信できるようになります)。

for (int ix=0; ix < 10000; ix ++)
{
 listView1.Items.Add(ix.ToString());
 Application.DoEvents();
}

VirtualMode について知らない場合は、私の提案が役立つと思います

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top