Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
グローバル変数について
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30496#CommentId83982
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
allgreen
 (社会人)
投稿日時
2020/5/25 13:08:24
ちょっと不思議な状態を見つけたので投稿です
Public Class Form1
Public 変数1 As Integer
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim f As New Form2
f.ShowDialog()
Label1.Text = 変数1 & " " & Form2.変数2 & " " & Form3.変数3
End Sub
End Class
Public Class Form2
Public 変数2 As Integer
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim f As New Form3
Form3.ShowDialog()
Label1.Text = Form1.変数1 & " " & 変数2 & " " & Form3.変数3
End Sub
End Class
Public Class Form3
Public 変数3 As Integer
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Form1.変数1 = 5
Form2.変数2 = 4
変数3 = 3
Label1.Text = Form1.変数1 & " " & Form2.変数2 & " " & 変数3
End Sub
End Class
フォームごとに、変数1、変数2、変数3がパブリックで宣言して
フォーム3で変数に数字を代入
フォームを閉じていけば、フォーム2、フォーム1に戻っていく
そのときに、変数1、変数2、変数3を表示
普通に考えれば、3回とも、5 4 3 が表示されると思うのですが
なぜかフォーム2のときの変数2が 0 となります
解決方法としては、グローバル変数を複数箇所で宣言しなければよいのですが
なぜ、このようになるのか不思議です