- 題名: テキストボックスへの反映
- 日時: 2006/01/13 14:46:16
- ID: 14503
- この記事の返信元:
- (なし)
- この記事への返信:
- [14504] Re[1]: テキストボックスへの反映2006/01/13 14:55:06
- [14507] Re[1]: テキストボックスへの反映2006/01/13 15:10:10
- ツリーを表示
■No14503に返信(covaさんの記事) > hForm2.ShowDialog(); > というのと経て、Form2のtextbox1にform1のtextbox1を表示させるにはどうすればいいですか? 本来は、ケースバイケースなのですが、 ShowDialog メソッドであるならば、以下のようなコードになるでしょう。 pubic class Form1 : System.Windows.Forms.Form { /* 省略 */ private void MakiMakiLove() { using (Form2 hForm2 = new Form2()) { // [OK] ボタンを選択した場合のみであるならば //if (hForm2.ShowDialog() == DialogResult.OK) { this.textBox1.Text = hForm2.TextBox1Text; //} } } } Form2 には TextBox1Text という公開されたプロパティを設けます。 当然 readonly プロパティにします。 不必要なアクセスを失くすことは非常に重要です。 pubic class Form2 : System.Windows.Forms.Form { /* 省略 */ public string TextBox1Text { get { return this.textBox1.Text; } } } これが OOP の基本ですね。 また、Form2 の項目が増えた場合は、プロパティをデータ クラスか構造体などに変更することで、 Form1 で一括で取得できるようになります。 間違っても、Form1 から Form2 を呼び出しているのにも関わらず、 Form2 自身が Form1 に何かを通知するような実装はあってはなりません。 (これは、OOP 以前に構造化言語からの基本ですね) __________________________________________________ じゃんぬ Microsoft MVP for Visual Developer - C# http://jeanne.wankuma.com/ http://blogs.wankuma.com/jeanne/
■No14510に返信(まどかさんの記事) > #こっそりと。。。(^^; > 元の要求と反対に解釈されいますよぉ。。。 あう... 読み違えた。。。 ということで、お詫びに。 pubic class Form1 : System.Windows.Forms.Form { /* 省略 */ private void MakiMakiLove() { using (Form2 hForm2 = new Form2()) { hForm2.SetTextBox1(this.textBox1.Text); hForm2.ShowDialog(); } } } pubic class Form2 : System.Windows.Forms.Form { /* 省略 */ public void SetTextBox1(string value) { this.textBox1.Text = value; } } __________________________________________________ じゃんぬ Microsoft MVP for Visual Developer - C# http://jeanne.wankuma.com/ http://blogs.wankuma.com/jeanne/
分類:[.NET]
form1のtextbox1へ文字入力をしたあと、form1のbutton1で
Form2 hForm2 = new Form2();
hForm2.ShoeDialog();
というのと経て、Form2のtextbox1にform1のtextbox1を表示させるにはどうすればいいですか?
Form2の追加は「新しい項目の追加」というので行っています。