- 題名: 親フォームデータの取得方法
- 日時: 2005/02/04 18:58:50
- ID: 8918
- この記事の返信元:
- (なし)
- この記事への返信:
- [8919] Re[1]: 親フォームデータの取得方法2005/02/04 19:17:26
- ツリーを表示
じゃんぬねっと です。 ■No8918に返信(みらいさんの記事) > フォーム1を親としてフォーム2を子として > フォーム1のデータをフォーム2で使いたい場合に と、仰ってるわりに、 > 'ボタンクリックでウィンドウ作成 > Dim Zikan As New Form2 > Zikan.ShowDialog() こちらで、MDI Form との結びつきはなされてませんが、これは問題ないのでしょうか? 以下、私が試したコード。 Source:--------------------------------------------------------- 【MDI 親フォーム】 Friend fStr As String = "HogeFooBar" Private Sub FormMain_Load(...) Handles MyBase.Load Dim hForm1 As New Form1() hForm1.MdiParent = Me hForm1.Show() End Sub ---------------------------------------------------------------- 【MDI 小フォーム】 Private Sub Button1_Click(...) Handles Button1.Click TextBox1.Text = DirectCast(Me.MdiParent, FormMain).fStr End Sub
じゃんぬねっと です。 ■No8960に返信(みらいさんの記事) > 前レスお名前を間違えていた、すいません<m(__)m> いえいえ、お気になさらないでください。 よくあることです。 > 親、子という単語の使い方が間違っていたようで、申し訳ありません。 どうやら、 > ----------------------------------------------------------- ■No8918に返信(みらいさんの記事) TextBox1.text=DirectCast(MdiParent, フォーム1).riyou > ----------------------------------------------------------- と「MdiParent」なる表現があったものですから、私が勝手に勘違いしていたようです。 MDI 云々は関係なかったようで、申し訳ありませんでした。 > 上記の部分をMeではなく外といった意味にすればいいのかと思い調べたのですが、 > 見つからず、先週購入した本にもMDIの使用方法しか乗っていないため苦戦しています。 > 重ね重ねで申し訳ありませんが、ご指導お願い致します。 親子ということは、通常 Modal 表示になるのでしょうか? 単純に書けば、(本来はプロパティを通すべきですが) Source:---------------------------------------------------- '[オーナ側] Friend fStr As String = "Hoge" Private Sub Button1_Click(...) Handles Button1.Click Dim hForm1 As New Form1() hForm1.ShowDialog(Me) End Sub ----------------------------------------------------------- '[被オーナ側] Private Sub Button1_Click(...) Handles Button1.Click TextBox1.Text = DirectCast(Me.Owner, FormMain).fStr End Sub ------------------------------------------------------------ とか。 敢えて、言いませんでしたが、仕様上、親子関係であるのならば、 本来、渡したいデータを初めに渡しておくべきです。 要するに、双方向では親子とは言えませんから。 今回とは逆の事例。 http://www7.big.or.jp/~pinball/discus/vb/57179.html
分類:[.NET]
【解決したい問題】
よろしくお願いします。
フォーム間のデータの取得方法について質問です。
フォーム1を親としてフォーム2を子として
フォーム1のデータをフォーム2で使いたい場合に
--フォーム1--
Public riyou As String="フォーム1のデータ!"
'ボタンクリックでウィンドウ作成
Dim Zikan As New Form2
Zikan.ShowDialog()
--フォーム2--
TextBox1.text=DirectCast(MdiParent, フォーム1).riyou
宣言で「Dim」ではなく「Public」にするという事は突き止めたのですが他の理由が分からず
上記のままだとインスタンスが設定されていないとエラーが出てしまいます。
初歩的は質問かとは思いますが、自分では解決できなかったためご指導お願いします。
【解決するために何をしたか】
掲示板等で同じような問題はいくつか発見したのですが、解決できる投稿させて頂きました。