質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

17862閲覧

C#で別のフォームのテキストボックスの中身をメインのフォームのテキストボックスに代入する

KFSIT

総合スコア29

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2017/07/04 07:12

編集2017/07/04 07:17

いつもお世話になっております。

私は今windows フォームアプリケーションでwebアプリを開発しています。
Form1のテキストボックスに入力した内容をForm2のテキストボックスに反映させようとしているのですが、うまくいきません。

Form2側 処理完了後 form1.Show();
Form1側 Form2 fm2 = new Form2(); textBox1.Text = fm2.textBox1.Text; textBox2.Text = fm2.textBox2.Text; textBox3.Text = fm2.textBox3.Text; textBox4.Text = fm2.textBox4.Text;

上記のようにコードを書いているのですが、Form1のtextBox1にForm2のtextBox1の内容が反映されません。
試しに適当に作った変数にForm2のtextBox1の中身をいれてデバックをしてみたのですが、値は入っていませんでした。

どうすればForm2で入力したtextBoxの中身をForm1のtextBoxに反映するのでしょうか?

ネットで参考になるサイトを探しましたが、うまくいきませんでした。

どなたかご教授お願いします。

追記
Form2側のtextBoxはすべてprivateからpublicに変更済みです。
Form2側のtextBoxの初期値を設定してから実行するとForm1側のtextBoxに反映することができました。
ですが、私は入力した値をForm1側に持ってきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

ネットの文献をあさった結果、参考になるものがあったので試してみた結果、うまくいきました。
これが最善の手なのかはわかりませんが、ソースを張っておきます。

処理終了後 Form1 form1 = new Form1(); form1.Show(); form1.textBox1.Text = this.textBox1.Text; form1.textBox2.Text = this.textBox2.Text; form1.textBox3.Text = this.textBox3.Text; orm1.textBox4.Text = this.textBox4.Text;

これでForm1のtextBoxに値を反映させることができました。
お騒がせして申し訳ありません。

投稿2017/07/04 07:35

KFSIT

総合スコア29

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Form2 fm2 = new Form2(); textBox1.Text = fm2.textBox1.Text; textBox2.Text = fm2.textBox2.Text; textBox3.Text = fm2.textBox3.Text; textBox4.Text = fm2.textBox4.Text;

newをしたら値が取れるわけない。

簡単なのは、参照を持つこと or 変数をStatic変数にする。
ただまぁ、これをやると密結合になる。
ややこしいが疎結合になる方法は、制御の反転(loc) https://msdn.microsoft.com/ja-jp/library/ff921087.aspx を使う。

投稿2017/07/04 07:27

kiichi54321

総合スコア1984

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KFSIT

2017/07/04 07:36

回答ありがとうございます。 初心者だったのでとりあえずnewをしていましたが、newをすると値が取れなくなるのですね。 勉強になりました、ありがとうございます。
kiichi54321

2017/07/04 07:38

いや、問題を勘違いしていた。簡単な問題なのに、ややこしいやり方を書いていた。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問