実現したいこと
DataGridViewにて、大量の列項目とレコード数を持ち、縦横のスクロールバーが常に表示されています。
これを、常時最新のデータを監視して表示データを更新し続けている画面を実装したいです。
発生している問題・分からないこと
DataGridViewの下の横スクロールバーが、再描画の度に長さが変わってピクピクと常に動き続ける現象が発生しています。
原因としては、グリッドの最右で縦スクロールが再描画の度に表示と非表示を繰り返しているためと思われます。
レコードが少なかったり、縦スクロールを非表示にすると起きないのですが、運用時にはDataGridViewに縦横のスクロールバーが常に表示され、再描画を繰り返している状態です。
該当のソースコード
特になし
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
解決方法として、縦スクロールがデータレコードの件数に関わらず恆に表示させようと思ったのですが、調べても不可能奈仕様で、新たに作成するしかないとありました。
他には、明示的に全列のfrozenをfalseにしてみたり、スクロールバー設定をbothにしてみたりしましたが、解決方しませんでした。
また、スクロールバーのスライダーの大きさが変わるのが問題なので、その大きさを固定する方法も調べましたが、見つかりませんでした。
以外の解決案を提案してみたのですが、諸々の事情にやり却下され、他の方法を模索しています。
・DataGridViewのデフォルトでないスクロールバーを追加でつける
・常に再描画するのでなく、表示内容の変更があったときにだけ再描画する
現在は、グリッドの右端とコンポーネント描画範囲の右端に隙間をあけて、縦スクロールの有無に影響を受けないようにする方針で調べています。
しかし、グリッドの左右の幅が短いときにならどうにかなるのですが、画面の幅を大きく超える長さのグリッド幅なので、同じようにできませんでした。
いずれか解決可能なアプローチはありますでしょうか
補足
特になし
回答1件
あなたの回答
tips
プレビュー