VB6.0のGridで任意の場所に色をつけるためにcol,rowでセルを指定し、ひとつのセルごとにループで色をつけたのですが、処理が遅くて。。
なので、一瞬とは言わず、せめて列ごとに色をつける方法があったら、
何方か、よろしくお願い致します。
> VB6.0のGridで
VB6のCD-ROMにはGridコントロールも収録されていますが、それは
(VB4などの)古いプロジェクトからの以降用の物です。できれば
Gridではなく、MSFlexGridやMSHFlexGridを使った方が良いかと。
# ……まぁ、実際には Grid ではなく、MS(H)FlexGridの事なのでしょうけれども。
> せめて列ごとに色をつける方法があったら、
MS(H)FlexGridの事であれば、RowSel,ColSel,FillStyleを併用すれば、
複数の範囲を一括指定できますよ。
MS(H)FlexGrid なら… .Redraw = False にするだけでも
違うと思います。
返答ありがとうございます。
>MS(H)FlexGridの事であれば、RowSel,ColSel,FillStyleを併用すれば
---------------------------------------
MSFlexGrid.FillStyle=1
MSFlexGrid.Col = 1
MSFlexGrid.ColSel = 6
MSFlexGrid.Row = 1
MSFlexGrid.RowSel = 2
MSFlexGrid.CellBackColor=色
---------------------------------------
とすれば、上から2行6列のカラムの色が変更されるはずですよね?
なぜか、2列1行のカラムの色しか変更されません。。
>MS(H)FlexGrid なら… .Redraw = False にするだけでも
.Redraw = False、.Redraw=trueで挟みましたがどうも、自分が理想
とする速度にはなりませんでした。
たびたび済みません。
どうか、ご教授のほどよろしくお願い致します。
> MSFlexGrid.FillStyle=1
「0」や「1」といったマジックナンバーを使うのではなく、
『flexFillRepeat』などの定数を使うことをお奨めします。
> とすれば、上から2行6列のカラムの色が変更されるはずですよね?
考え方は間違ってはいませんが、そのコードではColSelは1になります。
> なぜか、2列1行のカラムの色しか変更されません。。
「2行1列」ですよね?
ヘルプで、ColSel,RowSelプロパティについて調べてみてください。
そこに書かれている[解説]を最後まで読むと、理由がわかるかと思います。
返答ありがとうございました。
解説を読んだつもりでしたが、確認ミスでした。
次からは順序を追ってコーディングをしようと思います。
また、よろしくお願い致します。
済みません解決チェックを忘れました。
ツイート | ![]() |