Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
2つのフォーム間でのユーザコントロールに対するアクセス
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=9086#CommentId11326
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
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