始めまして。
この連休を利用し、自作のグリッドコントロールもどきを作成しています。
複数の列幅を同時に設定するのに、その各列の幅を配列で渡したいと思いま
す。
この件だけであれば文字列で"100,200,100,200”のように渡し処理すること
も考えられますが、配列でできるのであればその方がスマートに処理でき、
応用も考えられそうなのでお聞きいたします。
アドバイスをいただければ幸いです。
どの部分がわからないのでしょうか?
早速の返信ありがとうございます。
以下のようなプロパテイの設定で配列を渡せることができないかと
考えています。(コードは下の方にあります。)
Property... As Object でよいのでしょうか?
その場合Set(ByVal Value As Object)としたら
その行以下で配列内の各値を取り出すにはどうしたらよいのでしょうか?
またこれに対し設定する側のコードはどうなるのでしょうか?
?だらけで申し訳ありません。どうかよろしくおねがいいたします。
'キャプション部の背景色を設定する。
Property CaptionBackColor() As Color <-この辺?
Get
Return pCaptionBackColor
End Get
Set(ByVal Value As Color)
pCaptionBackColor = Value
pOutFrame.BackColor = pCaptionBackColor
Call SetCaption(pColsCaption)
End Set
End Property
単に次元を変更するイベントをクラスに入れて、
最初や、次元を変更した時に実行すればいいだけでは。
Public Class Grid
Private pCaptionBackColor() As Color
Property CaptionBackColor(ByVal index As Integer) As Color
Get
Return pCaptionBackColor(index)
End Get
Set(ByVal Value As Color)
pCaptionBackColor(index) = Value
End Set
End Property
Public Sub SetDimension(ByVal index As Integer)
'次元の変更
ReDim Preserve pCaptionBackColor(index)
End Sub
End Class
ありがとうございます。さっそく試してみました。
添付のコードは背景色の設定でしたが、幅の設定に換えて試したところ
うまく行きました。ただプロパティウインドウに表示されないため
幅の設定については、文字列のままで処理しようと思います(すいません)
しかし、グリッド内の各セルの表示属性や処理(四捨五入等)の設定に
役立たせていただきます。
CaptionBackColor(ByVal index As Integer) この()内にインデックス
を設定できるなんて全く知りませんでした。 勉強不足でした。
また質問させていただくこともあるかと思います。
そのときはまたよろしくお願いいたします。
ツイート | ![]() |