2008年2月4日月曜日

DataGridViewの行番号描写

これも色々とサンプルが見当たるものなので、ちょっと注意点を。

RowPostPaintイベントを利用して番号をAPIで直接描写、というのが一番ベターな方法になるのは間違いないところで。
というのも、これと似たような方法として、「RowHeaderCell.Valueに行番号となる値を設定する」方法もあるんだけど、これの場合は「最描写」を意識しないといけないため、ちょっと手間が増えるんだよね。

そしてもうひとつやってはいけないタイミングが存在していて。

RowPostPaintイベントやRowPrePaintイベントにてRowHeaderCell.Valueの値を操作すると、DataGridViewの動作が不安定になります。

というのがあるので、サンプル通り、RowPostPaintイベント(またはOnRowPostPaintメソッド)にてAPIにて番号描写、というのが一番ベターだったりします。

なんで不安定になるか、というところまでは調査していないですけどね。大体は描写しようとしているイベントの中で、その元ネタを操作するからだとは思います・・・。

0 件のコメント:

コメントを投稿