1

DataGridView に大量のデータ (1000 行 15 列以上) を表示したい。DataGridView.DataSource として BindingList を使用します。BindingList は体系的に変更されます (15 秒) - 一部の行が削除、変更、または追加されます (多くはありませんが、すべての行の数よりも確実に少なくなります)。

初めて DataGridView を準備して表示することも、それを変更することも、必要なほど効率的ではありません。私は簡単な解決策を見つけました(そしていくつかの同様のもの):

bindingList.RaiseListChangedEvents = false;
// modifying BindingList
bindingList.RaiseListChangedEvents = true;
bindingList.ResetBindings();

これらの行を追加してから、DataGridView のビルドと更新が大幅に高速化されました。しかし、この解決策には容認できない欠点が 1 つあります。リストを更新した後、スクロールがリストの上部に移動し、選択が失われます。DataGridView をすばやく変更するだけでなく、スクロールして (更新前に) 前の位置に留まり、行の選択を変更しないソリューションはありますか?

4

1 に答える 1

2

選択した座標を保存し、更新後に復元します。

于 2011-07-28T22:12:32.933 に答える