掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
.NETで外部フォームで変数の呼び出し。 (ID:106212)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
思ってたとおりです。これですね、原因は。 簡単に説明しますと、スコープの問題です。 Button1_Click内でlistDialogというform2オブジェクトを宣言していますね。 で、listDialogというオブジェクトをShowDialogしています。 つまり入門者さんがform2だと思っているオブジェクトは 実際にはlistDialogというオブジェクトなんです。 で、このオブジェクトはButton1_Click内で宣言されているため、 このイベント内からしか扱えないという事です。 (分かり難いかもしれませんが、そういうことです。) これを回避するにはlistDialogというオブジェクトをDeclarations内で宣言するか、 もしくは標準モジュール内でPublic宣言する必要があります。 そして扱う時は listDialog.TCode のようにします。 ==================================================================== (form1) 'グローバル領域で変数を宣言 Private listDialog as form2 'form1がアクティブなったときの処理 Private Sub KSmst03_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated Dim Code As Integer Code = listDialog.TCode TextBox1.Text = Code End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click listDialog = New form2() listDialog.ShowDialog() Me.DialogResult = DialogResult.OK End Sub -------------------------------------------------------------------- (form2) 'グローバル領域で変数を宣言 Public TCode As Integer 'ボタンクリックされたときの処理 Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click TCode = TextBox1.Text 'TextBox1に入力された値をTCodeに格納 Me.DialogResult = DialogResult.OK 'form2を閉じる。 End Sub ==================================================================== 動作確認はしてませんが、こんな感じでしょうか。 あと、VB.NETをやる上でクラスの概念は必須だと思うので クラスについて勉強することをオススメします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.