2つのフォームの相互参照方法について

解決


シン  2011-07-08 12:39:29  No: 72801  IP: 192.*.*.*

VC++/CLIを始めて1か月ですが、どうしても分からないので質問させていただきます。

行いたいことは、以下のことです。
1. Form1のbutton1を押して、Form2を表示する。
2. Form2のbutton2を押して、Form1のlabel1に何か文字を表示する。

Form1.hのコード
#include "From2.h"

~~~~~中略~~~~~~~

Form2^ f2=gcnew Form2();
f2->ShowDialog();

このコードでForm2は表示できたのですが、その先が分かりません。
Form2からForm1のlabel1への操作がうまくゆきません
「相互参照」でも調べましたが、理解に至らず困っています。
.cppファイルへのコードが大切なのでしょうか。
どういうコードで解決できるのか、ご教授をお願いいたします。

編集 削除
みい  2011-07-08 19:28:24  No: 72802  IP: 192.*.*.*

親ウィンドウはOwnerでアクセスできます。
直に扱おうとするならlabel1はpublicで宣言しないと扱えません
(個人的にはForm1側にpublicの関数を用意するべきと思います)。
    ((Form1^)Owner)->label1->…

Application::OpenFormsでForm一覧取得するのもありかな。

編集 削除
επιστημη  URL  2011-07-08 22:08:49  No: 72803  IP: 192.*.*.*

↓こんなんでいいかの。
https://skydrive.live.com/?cid=07c558f8e11e708f#!/?cid=07c558f8e11e708f&sc=documents&uc=1&id=7C558F8E11E708F%21678

編集 削除
シン  2011-07-11 22:24:44  No: 72804  IP: 192.*.*.*

επιστημηさん、ありがとうございました。うまくいきました。
まさに教えていただきたかったコードです。
デリゲート型は初めて知りました。delegateについて記載している参考書が手元に無く、まだ十分理解しておりませんが、じっくり理解を深めていきたいです。
みいさんも、ありがとうございました。
解決済みとさせていただきます。

編集 削除