投稿日 | : 2005/09/27(Tue) 11:30 |
投稿者 | : GOD |
Eメール | : |
URL | : |
タイトル | : Re^2: Visibleを参照すると Loadイベントが発生する |
> > Form2.Visible を参照すると Loadイベントが発生してしまいます。
>
> 誤解がないように補足しますが、Form2 内のメンバのいずれかを参照するとロードされます。
> Visible プロパティに限った話ではなく、Form 内のコントロールなどすべてです。
> これは、暗黙的にインスタンスを生成するからです。
>
Form2内のメンバと言うのはFormが元々持っているプロパティ、メソッドのことでよろしいんですよね。
(自分で追加した関数、変数、プロパティは範囲外)
Formが元々持っているプロパティ、メソッドにアクセスすると暗黙的にインスタンスを生成というより
暗黙的にロードしているのでは無いでしょうか。(ロード必要時にインスタンスが無い為生成。)
因みに自分が作成した物にアクセスすると(暗黙的に)インスタンスのみ作成します。(ロードしない)
※インスタンスが生成されたからといって必ずロードされるわけではない。
'Form1
Private Sub Command1_Click()
Form2.test
'Debug.Print Form2.hoge
'Debug.Print Form2.Visible
End Sub
'Form2
Private Sub Form_Initialize()
Debug.Print "Initialize"
End Sub
Private Sub Form_Load()
Debug.Print "Load"
End Sub
Public Sub test()
Debug.Print "Test"
End Sub
Public Property Get hoge() As Long
hoge = 1
End Property
----追加(2005/09/27 11:41)
「Formが元々持っている」は「コントロールが元々持っている」と読み替えてください。