• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Visual C♯ フォーム間での値の受け渡し)

Visual C♯ フォーム間での値の受け渡し

このQ&Aのポイント
  • Visual C#を使用してフォーム間で値を受け渡す方法についての助言をお願いします。
  • フォーム間の値の受け渡しについて試行錯誤しているプログラミング初心者です。Visual C# 2008を使用しています。
  • 具体的には、Form1のボタンをクリックしてForm2を表示し、Form2のテキストボックスに入力した値をForm1のテキストボックスに表示する方法を教えてほしいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • FoolWord
  • ベストアンサー率73% (14/19)
回答No.1

簡単なやり方で... 1.Form1のTextBox1のModifiersをPublicに変更します。 2.下記のソースを各イベントに書き込む [Form1のButton1クリックイベントソース] private void button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); // Form2を生成する f2.Show(this); // Form2を表示するときに、表示元(Form1)を引数として渡す // これをすることでForm2でForm1のTextBox1を参照出来るようになります。 } [Form1のButton2クリックイベントソース] private void button2_Click(object sender, EventArgs e) { Form1 f1 = (Form1)this.Owner; // Form2のOwnerをForm1でキャスト f1.textBox1.Text = this.textBox2.Text; // Form1のTextBox1にForm2のTextBox2の内容をコピー } これで上記、要件は満たされると思います。 また、「フォーム間の値の受け渡し」をキーワードにすれば、参考に出来るURLは出てくると思いますので がんばってください。

tomtom0841
質問者

お礼

ご回答ありがとうございます!わかりやすかったです! また機会があればぜひ力をかしてください! 今回は本当にありがとうございました!

その他の回答 (2)

回答No.3

[Form1] public partial class Form1 : Form { private Form2 fm2; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { fm2 = new Form2(this); } private void button1_Click(object sender, EventArgs e) { fm2.Show(); } public void setTextBox1(string text) { textBox1.Text = text; } } [Form2] public partial class Form2 : Form { private Form1 fm1; public Form2(Form1 fm) { InitializeComponent(); fm1 = fm; } private void button1_Click(object sender, EventArgs e) { fm1.setTextBox1(textBox1.Text); } } Form1のtextBox1を変更するためのpublicなメソッドを用意して、それをForm2の中で使う。 Form1のインスタンスへの参照は、Form2のコンストラクタに引数として渡す。

tomtom0841
質問者

お礼

詳しくありがとうございました!とても参考になります! 今回は一番早かった方をベストアンサーにさせていただきましたが、いろいろなやり方があるんだとわかりました!また機会があればぜひ力を貸していただけたらと思います。ありがとうございました!

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

とりあえずこの辺を参考にどうぞ。 http://dobon.net/vb/dotnet/form/accessanotherformdata.html

tomtom0841
質問者

お礼

ありがとうございます! 今後わからないことがあったらこのサイトも利用してみようと思います!