掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DataGridViewをまとめて表示させた時の問題 (ID:147658)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 表示の際に連続して同じ県名だった場合は線を表示せず、まとめた形で表示させています。 恐らくは、CellFormatting あるいは CellPainting 等での処理で、 「上の行と同じ値なら表示しない」ための処理を書いているのですよね。 仮に CellFormatting 等で e.Value = "" で消すような実装だと、 データ編集時に困るかと思うので…CellPainting で自前描画でしょうか? > スクロールしたときに表示上の1番上の行には常に県名を表示させるようなことは無理でしょうか? 手抜き実装で良ければ、その処理に対して 「ただし、一番上に見えている行の時はそのまま表示させる」 のようなコードを追加すればよいかと思います。 具体的には、 If DataGridView1.FirstDisplayedScrollingRowIndex = e.RowIndex Then Return End If のような感じです。ただし、これだけではまだ不十分なので、さらに、 スクロール時に先頭行を再描画させるため、Scroll イベントや編集時等に、 DataGridView1.Invalidate() を呼び出し、全体を強制的に再描画させます。 なお、もしも全体を Invalidate するとパフォーマンス上の問題が 生じる場合は、スクロール前後の FirstDisplayedScrollingRowIndex や 編集した行の前後のデータを判断して、該当行のみを InvalidateRow するなどして、再描画の範囲を狭めるようにして対処してみてください。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.