投稿者 Kintonun  (社会人) 投稿日時 2009/4/22 00:31:37
前略。言語はMicrosoft Visual Basic 2008 Express Editionです。
行いたいことの概略は以下の通りです。
frmAからfrmBに配置したユーザコントロールのプロパティーを変更したい。
msdnなど見ながら、以下のユーザコントローラを作りました。テストし、何とかfrmBのPanl1内に
貼り付けることが出来ました。
・ユーザコントロール名:uctRectにてプロパティーを作成
  (ユーザコントロール用フォーム?にShapコントロールを貼り付けた)
   Public class uctRect
       Public Property shpLamp_BackColor() As Drawing.Color
           Get
               Return (shpLamp.BackColor)
           End Get
            Set(ByVal value As Drawing.Color)
              shpLamp.BackColor = value
           End Set
       End Property
   end Class
・別のプロジェクトにて、frmBのpanel1にuctRect0~uctRect69(70個)を貼り付けた。
・同ソリューション内にてfrmAにてfrmBにアクセスを行う。
   frmA内ソフト
   frmB.uctRect0.shpLamp_BackColor = Color.Red
 にて、frmAからfrmBの色を変更できた。
 この結果から、70個、この文を並べると何とかなりますが、ループを使って、一括で処理出来ない
のでしょうか?いろいろ参考にして、コントロール名まではアクセス出来ているようですが、プロパティー
へのアクセスが分かりません。ご助言頂けませんでしょうか?以下、検討したソフトを記載します。
  For i=0 to frmB.panel1.Controls.Count-1
       if frmB.panel1.Controls.Item(i).Name Like "uctRect*" then

          この中でshpLamp_BackColor プロパティーに書き込みたい

       End if
    Next
最後に、専門用語が間違っていましたら、訂正願います。現在、50の手習いで勉強中です。