2012-03-06 2 views
3

リセットしておきます読んでいるファイルは約2ミリ秒ごとに更新されます)。だから、私がスクロールしているとき、スクロールバーは、リフレッシュ時に元の位置にジャンプします。私はこのようなリフレッシュ:C#のスクロールバーは、私のような私のグリッドをバインドしていたときにDataGridViewのアップデート

((CurrencyManager)dataGridView1.BindingContext[tableData]).Refresh();

どのように私はDataGridViewのが更新されるたびにリセットスクロールバーなしでスクロールすることができます(これは、すべての〜1秒が一度起こりますか)?

答えて

5

thisをご覧ください。質問はWinforms DataGridについてですが、その答えはDataGridViewに適用されます。再ロードの前にFirstDisplayedScrollingRowIndexを保存してから復元する必要があります。

+0

これは動作しているようです。これは非常に大きなデータセットであるため、スクロールはあまりスムーズではありません。バーを一定量ドラッグすると、カーソルの後に止まるので、もう一度つかまえてやり直す必要があります。これは単に大きすぎるか、行のインデックスを更新/処理するときにドラッグの動きを停止するためですか? – jpints14

+0

スクロール速度はハードウェアによっても異なります。あなたは[this](http://www.dreamincode.net/forums/topic/188953-c%23-datagridview-doublebuffered-property/)を試してみてください。私はこれを使用していないので、実際に動作するかわかりません。 –

+0

動作しませんでしたが、とにかく – jpints14

0

この質問を投稿してからしばらくお待ちしておりますが、この種の問題に直面しました。チェックすることの一つは、あなたのグリッドは、あなたのスクロール位置がリセットされます、次のよう

コードを更新するときないCurrentCellプロパティを設定されていることを確認することです。特定の行とその行の最初のセルを表示するように指示しています。

YourGrid.CurrentCell = YourGrid[0, row]; 

これが役に立ちます。

DC

関連する問題