• ベストアンサー

別フォームで入力したデータを表示させる方法

Visual Basic 2005 Express Edhition 2日目の超初心者です。 Form1にA,B,Cのテキストボックスを作り、計算釦を押すとAとBに入力した数値の和をCに表示させるプログラムを作りました。 ただし、Bへの入力のみForm1から呼び出したForm2で行い、入力後はForm2を閉じています。 この時、Form1に表示されるBの値が計算釦を押すまで新しい入力値で表示されません。 Form2を閉じたタイミングで新しい入力値を表示させる方法を教えて下さい。

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

  • ベストアンサー
回答No.1

ここ数年 VB ではなく C# なので自信がありませんが、、、 Form2 から Form1 のテキストボックスに書き込むことは出来てると思います。 ですのでストレートな回答は Form2 の FormClosing イベント内で Form1 のテキストボックスに書き込んではどうでしょうか? という感じです。 以下、一通り書いてみました。 <Form1> TextBoxA, TextBoxB, TextBoxC Button1 (Form2 を呼び出すためのもの), Button2 (計算するためのもの) <Form2> TextBoxD とします。 ' Form1 の Button1 の Click イベント Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' 変数 frm で Form2 を参照。 ' Form1 を Form2 の Owner にする。 ' Form2 を表示する。 Dim frm As New Form2 frm.Owner = Me frm.Show() End Sub ' Form2 の FormClosing イベント Private Sub Form2_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing ' 変数 frm に自分 (Form2) の Owner フォームを参照させる。 ' frm の TextBox2 に自分とこの TextBox1 の値を書き込む。 Dim frm As Form1 frm = CType(Me.Owner, Form1) frm.TextBoxB.Text = Me.TextBoxD.Text End Sub

yokagura
質問者

お礼

出来ました!! このような方法があるのですね。 書店やネットで色々調べたのですが分からなかったので とても助かりました。 応用の幅がグンと広がりそうです。 ありがとうございました。厚くお礼申し上げます。