■No81358 (ぽん太郎 さん) に返信
> ここ数日ずっと調べてました。日本のサイトから海外のフォーラムまで・・・
> form form2とかのデータの受け渡しとかは調べたらすぐでてくるのですが、ユーザーコントロールから
> formにあるコントロールの値取得などは参考サイトが少ないです・・・
目的ベースで探しても見つからない類いの話だと思います。
(でも、フォーム間の受け渡しと同じ考え方のはずですけれども…)
おすすめしない、安易な解決は先ほども書きましたがもう少し砕くと:
1.ユーザーコントロールのデザイン画面を開く。
2.外から触りたい貼り付けているコントロールを選択する。
3.プロパティから Modifiers を探す。
4.Private になっているものを Internal や Public に変更する。
どちらかと言えば、プロパティを作るべきです。
ユーザーコントロール側のコードエディターを開き:
// ユーザーコントロールのプロパティとして公開する
public ListBox1Text {
get { return listBox1.Text; }
set { listBox1.Text = value; }
}
そして、利用するフォーム側で:
// 自作したプロパティを利用する
otherForm.ListBox1Text = "aa";
という感じです。
今回はサンプルとしてコントロールの名前そのものにしましたが、コントロールの名前もプロパティの名前も
意味を持たせた方が良いです。
ユーザー名を表示する、設定するのであれば UserName、ファイル名であれば FileName などと、
意味のある名前をつけないと、たくさんコントロールを配置したときに何番だっけ?となってしまうためです。
自作のプロパティに関しては DOBON.NET さんの記事も読んでおきましょう。
http://dobon.net/vb/dotnet/vb6/property.html
-----
追伸
フォームや otherForm と書いていますが、ユーザーコントロールはフォームではありません。
コミュニケーションの際にも勘違いを誘発することになるので言葉は使い分けましょう。