- - PR -
Form1からForm2への参照
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-06-11 14:21
とても初歩的な質問だとは思うのですが、分からないので教えて下さい。
Form1のボタンが押されるとForm2へデータを渡す場合、以下の2行が何を意味しているのかが分かりません。素人質問ですがよろしくお願い致します。 [Form1のボタンクリック時] Form2 fm =new Form2(); fm.frmMain=this; ←これ fm.show(); [Form2のロード時] public Form1 frmMain; ←これ | ||||||||||||
|
投稿日時: 2007-06-11 15:21
ピンポイントに何を説明すべきかわかりませんでしたので、何だか説明が冗長になってしまいました。
fm は Form2 のインスタンスです。fm.frmMain はそのインスタンスの中に含まれるメンバ。つまり Form2 内にある frmMain というメンバになります。
つまり、上記のフィールドのことです。 何をしているかというと、Form2 をインスタンス化して表示する前に、Form1 のインスタンス (this は Form1 のインスタンス) を Form2 の frmMain という公開されたフィールドに渡しています。 このような実装が必要となっている背景には、どの Form から表示したのかを Form2 で判断したいということに尽きます。Form1 にあるデータを Form2 で取得したい。Form2 で入力したデータを Form1 にセットしたい。などです。 思いっきり Form2 が Form1 を意識しており、いわゆる依存関係が強すぎます。個人的には良い実装とは言いがたいですね。おまけに公開フィールド...。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2007-06-11 16:57
じゃんぬねっとさん。
親切な解説ありがとうございます。 thisという単語に悩まされていたような気がします。 thistってそのクラスを意味してるんですね。 まだまだがんばらなくては・・・ ありがとうございました。 |
1