- ベストアンサー
C#のtextBox1への書込に関する質問
- Class1のtestを介して、textBox1への表示は可能ですか?
- C#(VS2013)のtextBox1への書込に関する質問です。
- 『textBox1.Text=str;』による、textBox1の書き込みは、『button1_Click』の中から、直接『//write_textBox1("aaa"); 』を実行すれば出来ます。しかし、Class1のtestを介して、『write_textBox1("bbb");』を実行した場合にはtextBox1に表示が出来ません。尚、Consoleには、何れの場合にも表示出来ます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Class1にForm1型のプロパティを作成し、そのプロパティにClass1 objを作成した時にthisを渡して保存し、Class1の方でそれを参照しましょう。
その他の回答 (1)
- oboroxx
- ベストアンサー率40% (317/792)
クラスのことがわかっていないと思います。 thisとはどういうものかおわかりでしょうか? button1_Click()のなかでのwrite_textBox1("aaa")を呼び出すと、write_textBox1()内で呼ばれるtextBox1.Textはthis.textBox1.Textを呼び出しており、このthisはForm1が呼び出された時のインスタンスであります。つまり画面上に表示されているForm1です。 一方Class1のインスタンスを作って、obj.test()を読んでいるところはbbb()を呼び出しており、bbb()のなかではForm1 obj = new Form1()で新しいインスタンスを作っています。このobjは画面に表示されているForm1のインスタンスとは別物です。 なのでobj.write_textBox("bbb")を実行すると、その中で呼ばれているtextBox1.Textはthis.textBox1.Textなので、このthisはobjのことであり、このobjは表示されているForm1とは別物なので、画面では表示されません。 画面に表示されていないobjのtextBox1.Textに書き込まれています。 頑張ってください。
補足
毎度、お世話になります。 >bbb()のなかではForm1 obj = new Form1()で新しいインスタンスを作っています。このobjは画面に表示されているForm1のインスタンスとは別物です。 <--了解しました。 objは画面に表示されているForm1のインスタンスを指すobjを 作る方法はありませんか? もし、有れば、お教えください。 以上、宜しくお願いします。
お礼
>Class1にForm1型のプロパティを作成し、そのプロパティにClass1 objを作成した時にthisを渡して保存し、Class1の方でそれを参照しましょう。 <---丁寧、明快な回答有難うございます。 まだ、十分理解できませんが、後はなんとか、やっています。 詰まり、方向が解りましたので。