投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/4/22 06:42:11
■刈谷勇さん
> Modifiersをpublic等に設定するのではダメですか?
もともとが Friend ですから、特に修正の必要は無いと思います。

実際、
>> frmB.uctRect0.shpLamp_BackColor = Color.Red
>> にて、frmAからfrmBの色を変更できた。
とありますので、既に Modifiers ≠ Private になっているようです。


■Kintonunさん
> frmAからfrmBに配置したユーザコントロールのプロパティーを変更したい。
frmA が、frmB のコントロールを直接操作するのは避けた方が無難です。
後から frmC が追加された場合や、frmB のコントロールを変更した場合、
その修正が frmA に波及してしまうからです。

frmB の操作は frmB 自身に任せ、frmA は frmB に対して、背景色の
「変更依頼」をメソッドあるいはイベントを通じて投げた方がよろしいかと。


> この結果から、70個、この文を並べると何とかなりますが、ループを使って、一括で処理出来ないのでしょうか?
70 個のコントロールを、最初からコレクションや配列で管理しておくと良いでしょう。
そうすればコントロール名ではなく、数値で処理できるようになります。

> いろいろ参考にして、コントロール名まではアクセス出来ているようですが、
全部に同じ色を設定するのであれば、たとえばこう書けます。

For Each uct In frmB.Panel1.Controls.OfType(Of uctRect)
    uct.shpLamp_BackColor = Color.Red
Next