Form上放一个Text:Private Sub Form_Activate()
MsgBox "Activate" & Text1.Text '6
End SubPrivate Sub Form_Initialize()
MsgBox "Initialize" '1
MsgBox "Initialize" & Text1.Text '4
Text1.Text = "123" '5
End SubPrivate Sub Form_Load()
MsgBox "Load" '2
MsgBox "Load" & Text1.Text '3
End Sub
-------------
为什么执行顺序是1-6(注释的顺序)。
Form、Text1是在Form_Initialize里进行加载的?为什么Form_Initialize中为Text1赋值不是一开始就运行?
MsgBox "Activate" & Text1.Text '6
End SubPrivate Sub Form_Initialize()
MsgBox "Initialize" '1
MsgBox "Initialize" & Text1.Text '4
Text1.Text = "123" '5
End SubPrivate Sub Form_Load()
MsgBox "Load" '2
MsgBox "Load" & Text1.Text '3
End Sub
-------------
为什么执行顺序是1-6(注释的顺序)。
Form、Text1是在Form_Initialize里进行加载的?为什么Form_Initialize中为Text1赋值不是一开始就运行?
MsgBox "Initialize" '1
MsgBox "Initialize" & Text1.Text '4 当遇到text1时,就会跳到load里运行,load运行后才会显示本条
Text1.Text = "123" '5
End Sub
Private Sub Form_Activate()
MsgBox "Activate" & Text1.Text '6
End Sub Private Sub Form_Initialize()
MsgBox "Initialize" '1
MsgBox "Initialize" & Text1.Text '4
Text1.Text = "123" '5
End Sub 首先自然是初始化即Initialize,执行到MsgBox "Initialize" & Text1.Text '4 这句时需要找到Text1.text,而Text1.text是在窗体上提供的,所以必须先去加载窗体,即窗体load事件,所以转到2然后3,执行了3之后就知道Text1.text是什么内容了,当然此时text1.text也可以被赋值了最初就是要初始化窗体,初始化之后当然要激活窗体,所以窗体获得焦点而执行Activate另:个人觉得这段代码
Private Sub Form_Initialize()
MsgBox "Initialize" '1
MsgBox "Initialize" & Text1.Text '4
Text1.Text = "123" '5
End Sub
是个坏风格因为这试图控制VB的运行顺序机制