ユーザコントロールのプロパティを配列とするには?

解決


どこか行きたいパパ  2005-05-01 23:22:31  No: 121383

始めまして。
この連休を利用し、自作のグリッドコントロールもどきを作成しています。
複数の列幅を同時に設定するのに、その各列の幅を配列で渡したいと思いま
す。
この件だけであれば文字列で"100,200,100,200”のように渡し処理すること
も考えられますが、配列でできるのであればその方がスマートに処理でき、
応用も考えられそうなのでお聞きいたします。
アドバイスをいただければ幸いです。


ねろ  2005-05-02 03:42:03  No: 121384

どの部分がわからないのでしょうか?


どこか行きたいパパ  2005-05-02 15:24:30  No: 121385

早速の返信ありがとうございます。

以下のようなプロパテイの設定で配列を渡せることができないかと
考えています。(コードは下の方にあります。)

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


ねろ  2005-05-02 22:22:54  No: 121386

単に次元を変更するイベントをクラスに入れて、
最初や、次元を変更した時に実行すればいいだけでは。

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


どこか行きたいパパ  2005-05-03 19:02:27  No: 121387

ありがとうございます。さっそく試してみました。
添付のコードは背景色の設定でしたが、幅の設定に換えて試したところ
うまく行きました。ただプロパティウインドウに表示されないため
幅の設定については、文字列のままで処理しようと思います(すいません)
しかし、グリッド内の各セルの表示属性や処理(四捨五入等)の設定に
役立たせていただきます。
CaptionBackColor(ByVal index As Integer)  この()内にインデックス
を設定できるなんて全く知りませんでした。 勉強不足でした。
また質問させていただくこともあるかと思います。
そのときはまたよろしくお願いいたします。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加