電子書籍の厳選無料作品が豊富!

Visual C♯
フォーム間での値の受け渡しについて
プログラミング初心者です。
今、勉強中なのですが、試行錯誤しても出来なかったので助けていただければと思います。

現在Visual C# 2008を使っております。
フォーム間の値の受け渡しについて、助言をお願いします。

[Form1]
・TextBox1
・Button1

[Form2]
・TextBox2
・Button2

1.Form1のButton1をクリックし、Form2を出す。
2.Form2のtextBox2に文字を入力し、Button2をクリックする。
3.Form1のTextBox1に、Form2のtextBox2に入力した文字を表示する。

という、作業をしたいのです。
できればソース付きで教えていただけると助かります。
よろしくお願いします。

A 回答 (3件)

簡単なやり方で...



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は出てくると思いますので
がんばってください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/07/12 17:38

[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のコンストラクタに引数として渡す。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/07/12 17:35

とりあえずこの辺を参考にどうぞ。



http://dobon.net/vb/dotnet/form/accessanotherfor …
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/07/12 17:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報