Public変数がわかりません – プログラミング – Home

Public変数がわかりません
 
通知
すべてクリア

[解決済] Public変数がわかりません


NM
 NM
(@NM)
ゲスト
結合: 17年前
投稿: 7
Topic starter  

VB2005で教えてください
Form1とForm2があります。(クラス名です)
Form1でPublic flg As Booleanと定義してまして
Form1クラス内でflgをOn/Off操作(True/False)しています。
Form2はForm1のflgのOn/Off状態を表示します。
Form2でForm1のflgを得るのに
Dim b As Boolean
b = Form1.flg
としていますがちゃんと見れます。
これが不思議なんです。
Form2はクラス名で実体ではないのに
なぜForm1のflgの状態をちゃんとみれるんでしょうか?
VBではこれが普通なんでしょうか?
Form1が2つあったら判別できない気が..


引用未解決
トピックタグ
NM
 NM
(@NM)
ゲスト
結合: 17年前
投稿: 7
Topic starter  

プログラム例です。
Form1のflg操作がForm2に反映されます。
これは正しいプログラムの書き方なんでしょうか?
たまたまうまくいってるような気が…

Public Class Form1

Public flg As Boolean
Private f2 As Form2

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
flg = False
f2 = New Form2
f2.Show()
End Sub
  'Form1上でflgOFF
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
flg = False
End Sub
  'Form1上でflgON
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
flg = True
End Sub
End Class

Public Class Form2

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Button1.Visible = Form1.flg
End Sub

  '1秒周期でForm1のflg状態を取得(ボタンの表示/非表示)
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
Button1.Visible = Form1.flg
End Sub

End Class


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

「VB 暗黙 インスタンス」あたりでWeb検索してみてはどうでしょうか?


返信引用
NM
 NM
(@NM)
ゲスト
結合: 17年前
投稿: 7
Topic starter  

調べた感じでは
Form2.flgとしたことで自動的にインスタンスが生成され
それがForm2とリンクするってことでしょうか。
その機能?はMainSubを自分で実装することで無効になるようです。
関連がよくわかりませんがあまりよくないということはわかりました。
ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました