0

サーバーとクライアント、両方で同じwinformアプリ、同じデータベースの2台のコンピューターがあります。

データベースの変更時にデータグリッドビューを更新できるようにしたい

そのため、datagridview データソースを更新するティッカーを 4 秒ごとに更新しました。

データソースが変更されているときの問題はほとんどありません

最初に行がデータグリッド内で choose(dataGridView_RowHeaderMouseClick) だった場合、フォーカスが失われました。

データグリッドビューを下にスクロールすると、スクロールバーが最初にジャンプします。

それを正しく行う方法についてのアイデアはありますか?

ありがとう

バアロズ

4

2 に答える 2

1

無条件で 4 秒ごとに DataSource を更新することは望ましくありません。あなたが言うように、これによって影響を受けるいくつかの機能上の問題があります (行にフォーカスを失うなど、行にフォーカスするたびに行ハンドルを格納することで解決できますが、必要なものではないはずです)ロードしているテーブルが大きい場合、一定のリロードによってパフォーマンスの問題が発生するという事実は言及しません。

DataSource が変更されるたびに更新をトリガーするか、Anthbs が言うように、データをグリッドの DataSource と比較し、それらが異なる場合にのみ更新する必要があります。

于 2012-12-05T19:20:21.110 に答える
0

リフレッシュの問題を軽減するためのアイデアがいくつかあります。

  • これが発生する可能性を減らすために、新しいデータとグリッド内のデータを比較し、データが変更された場合にのみ更新することができます。

  • グリッドを更新する前に選択したインデックスを保存し、更新後に元に戻すことができます。

于 2012-12-05T02:51:42.493 に答える