C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[9]: 別Form内のオブジェクトが参照できない


(過去ログ 70 を表示中)

[トピック内 11 記事 (1 - 11 表示)]  << 0 >>

■40604 / inTopicNo.1)  別Form内のオブジェクトが参照できない
  
□投稿者/ ZAP (1回)-(2009/08/30(Sun) 00:25:56)

分類:[C#] 

2009/08/30(Sun) 00:28:26 編集(投稿者)
2009/08/30(Sun) 00:28:23 編集(投稿者)

VC#2008での質問です。

よくある質問で大変申し訳ないのですがForm1からForm2を起動した場合にForm2のボタン押下時に
クラスを呼び出して、そのクラス内からForm1のTextboxの値を参照した場合に空文字「""」となってしまいます。
なお、Textboxの「Modifiers」は「Public」になっております。

Form1_Clickイベント
--------------
Form2 f = new Form2();
f.Show();
//あえて自身をHideしておりません

Form2_Clickイベント内で呼び出されるクラスでの記述
--------------
Form1 f = new Form1();
str = f.txtName.Text

色々とあさってみたのですがインスタンスが違う?からなのかなと思いましたが・・・

大変申し訳ないのですがご教示下さいますようお願い申し上げます。

追記:Form2のクリックイベントに直接表記しても同様の動作でした。

引用返信 編集キー/
■40605 / inTopicNo.2)  Re[1]: 別Form内のオブジェクトが参照できない
□投稿者/ ZAP (3回)-(2009/08/30(Sun) 00:27:51)
追記です。
Form2のクリックイベントに直接表記しても同様の動作でした。
引用返信 編集キー/
■40606 / inTopicNo.3)  Re[1]: 別Form内のオブジェクトが参照できない
□投稿者/ επιστημη (2142回)-(2009/08/30(Sun) 01:21:31)
επιστημη さんの Web サイト
> 色々とあさってみたのですがインスタンスが違う?からなのかなと思いましたが・・・

そのとーりです。
Form1という名の"別人"を新たに作り、そいつのTextBoxをアクセスしています。

引用返信 編集キー/
■40607 / inTopicNo.4)  Re[2]: 別Form内のオブジェクトが参照できない
□投稿者/ ZAP (4回)-(2009/08/30(Sun) 01:31:00)
> そのとーりです。
> Form1という名の"別人"を新たに作り、そいつのTextBoxをアクセスしています。
ありがとうございます。納得できました・・・・

・・・が!どのようにすれば解決できるでしょうか・・・(涙
お手数ですがご教示ねがいますようお願い申し上げます。
引用返信 編集キー/
■40608 / inTopicNo.5)  Re[3]: 別Form内のオブジェクトが参照できない
□投稿者/ επιστημη (2143回)-(2009/08/30(Sun) 01:36:54)
επιστημη さんの Web サイト
> ・・・が!どのようにすれば解決できるでしょうか・・・(涙
> お手数ですがご教示ねがいますようお願い申し上げます。

Form2がForm1の参照を持ってればいいでしょうね。

// あくまで一例
class Form2 : Form {
  private Form1 f_;
  public Form2(Form1 f) { f_ = f; }
  private void ボタンが押された(object sender, EventArgs e) {
    string str = f_.txtName.Text;
    ...
  }
  ...
}

Form1_Clickイベント
--------------
Form2 f = new Form2(this); // ココでオノレの参照をForm2に渡す。
f.Show();

引用返信 編集キー/
■40609 / inTopicNo.6)  Re[4]: 別Form内のオブジェクトが参照できない
□投稿者/ ZAP (5回)-(2009/08/30(Sun) 02:07:32)
ありがとうございます!
思い通りの動作が確認とれました!!!

今まで何度も議論されてきていますが、結局はこうやって全て渡していくしかないんですかね・・・
人それぞれだとは思いますが、今回は、

Form1 <ここが入力画面。全ての大元
|
+-----+
| |
Form2 Form3
| |
続く 続く

のようなパターンなのでForm1をHide()しておくことによりどこからでも参照できるかと思ったのですが。。。
もしなにかオススメの方法がありましたらご教示ください。

追伸。本っっっっっっっ当にありがとうございました!
引用返信 編集キー/
■40610 / inTopicNo.7)  Re[5]: 別Form内のオブジェクトが参照できない
□投稿者/ επιστημη (2144回)-(2009/08/30(Sun) 10:28:00)
επιστημη さんの Web サイト
> ...どこからでも参照できるかと思ったのですが。。。
> もしなにかオススメの方法がありましたらご教示ください。

どこからでも参照できるテはありますが、
僕はそれをオススメしない。

引用返信 編集キー/
■40611 / inTopicNo.8)  Re[6]: 別Form内のオブジェクトが参照できない
□投稿者/ ZAP (7回)-(2009/08/30(Sun) 15:53:56)
お返事ありがとうございます。

> どこからでも参照できるテはありますが、
> 僕はそれをオススメしない。
なるほど。。。
結局通常のGlobal変数のようにあまりよろしくないってことですねー
ご意見ありがとうございました^^
解決済み
引用返信 編集キー/
■40680 / inTopicNo.9)  Re[7]: 別Form内のオブジェクトが参照できない
□投稿者/ επιστημη (2146回)-(2009/09/01(Tue) 09:45:56)
επιστημη さんの Web サイト
> 結局通常のGlobal変数のようにあまりよろしくないってことですねー

ご参考:
http://blogs.wankuma.com/episteme/archive/2009/09/01/180721.aspx

解決済み
引用返信 編集キー/
■40724 / inTopicNo.10)  Re[8]: 別Form内のオブジェクトが参照できない
□投稿者/ ZAP (9回)-(2009/09/01(Tue) 23:46:27)
なるほど。こういう方法もあるんですねー・・・
盲点でした。

ただ、やはり今回はフォーム数がそこまで多くはなかったので通常通り遷移元フォームを渡してやる
方法で対応しました。画面数が多くなったときに教えていただいた方法も検討してみます^^

本当にありがとうございました。
引用返信 編集キー/
■40726 / inTopicNo.11)  Re[9]: 別Form内のオブジェクトが参照できない
□投稿者/ ZAP (10回)-(2009/09/01(Tue) 23:47:09)
すみません、解決済みが消えてしまってたのでもう一度・・・
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -