• 締切済み

フォーム、サブフォーム間のデータ渡し

いつもお世話になっております。 Form1で、いろんなデータを入力し、DBに登録するプログラムを作っています。 ある項目のみ、サブフォーム(Form2)を表示し、そこに選択の候補となるデータを表示しています。(リストボックス) そのリストボックス選択値を、Form1のテキストボックスに代入したいのですが、その方法がわかりません。 VB.NETのお詳しい方、よろしくお願いいたします。

みんなの回答

回答No.3

私も VB.NET は使ったことないので、VB.NET のサブフォームについてはよくわからないのですが、Access のサブフォームとよく似たものだと推測しています。 Access ではサブフォームから親フォームを参照するときは Parent が使用できました。質問の内容に当てはめると Private Sub コマンド1_Click() Parent.テキスト1 = リスト1.Value End Sub のような感じです。 VB.NET では Parent は使用できませんか? なお、VB6 のように、Form の宣言も作成もなくいきなり Form1.テキスト.Text1.Text = Form2.List1.Text という記述は VB.NET では NG のようですね。 (参照:http://www.geocities.co.jp/SiliconValley-SanJose/8756/vbnet.html

  • tak2003
  • ベストアンサー率32% (174/540)
回答No.2

Form1.text1.text=Form2.list1.text でフォーム2のリストボックス1に書いてあるテキストを フォーム1のテキスト1のテキストに書きかえるとしていますが、VB.NETでは通用しませんか? 変数を使わないで直接プロパティを移しているだけなのです。 普通にtext1.text="sample" とかしてますよね? フォームが複数あったら、特定できないのでForm1.text_ 1.textにしているだけなんです。 オブジェクト.メソッド.プロパティの並び方は.NETでも変わらないと思うのですが^^; なので、textまたはcaptionがプロパティで出てくるものは、直接書きこんで値を変更する事ができます。 その他の方法はSUBで変数を参照させればよろしいかとおもいます。

  • tak2003
  • ベストアンサー率32% (174/540)
回答No.1

VB6.0で動くコードならば、 If List1.ListIndex >=0 Then Form1.text1.text=Form2.list1.text Else Exit sub End If で表示ができます。 変数に入れて受け渡しした方が後々楽かもしれませんね。 VB.NETでも大幅な変更しなくて良いと思うのですが^^; .NETのリファレンスやヘルプを用いて、デバグして 一度試して見てください。

ssi77
質問者

お礼

Form2を表示し、Form2上のコマンドボタンを押すことにより、 Form1のテキストボックスに代入するコーディングが わかりません。 dim f1 as Form1() などとできれば、簡単にForm1.textbox1.text に代入できると思うのですが。。。 その辺はどうでしょうか?

関連するQ&A