form_load 和 form_activate 的区别,同样的代码写在着两个事件中,哪一个好

解决方案 »

  1.   

    form_load事件之前进行form_activate事件,form_activate一般进行更初始的操作
    例如:
    Private Sub MDIForm_Load ()
       Form1.Caption = "Form #1"      '设置 Form1 的标题。
       Dim NewForm As New Form1      '创建一个新的子窗体。
       Load NewForm
       NewForm.Caption = "Form #2"   ' 设置新窗体的标题。
       NewForm.Show                  ' 显示新窗体。
    End SubPrivate Sub Form_Activate ()
          ' 设置状态栏文本。
       MDIForm1.Label1.Caption = "Current form: " & Me.Caption
    End Sub或者:
    Private Sub Form_Activate ()
       Dim I   ' Declare variable.
       ' 重新填充列表(当添加或删除一个实例时)。
       lstForms.Clear   ' Clear list box.
       For I = 0 To Forms.Count - 1
          lstForms.AddItem Forms(I).Caption
       Next I
    End Sub
      

  2.   

    //form_load事件之前进行form_activate事件,form_activate一般进行更初始的操作不是吧
      

  3.   

    要反过来的form_load事件先执行的!
      

  4.   

    form_load事件在form装入内存时发生,form_activate在form成为活动窗口时发生;form_load一般只有一次,load之后,会发生form_activate;但是除此之外,通过单击窗口,或使用代码中的Show或SetFocus方法之类的用户操作使它变成活动窗口时也会发生form_activate;Activate事件仅当窗口可见时才发生。例如,除非使用 Show 方法或将窗体的 Visible 属性设置为 True,否则,一个用 Load 语句加载的窗体是不可见的。
      

  5.   

    概念模糊,我想2楼的可能是与Intialize事件搞混了
    Intialize事件是在Load 事件之前发生,进行初始化操作
      

  6.   

    form_load事件在form装入内存时发生,form_activate在form成为活动窗口时发生;form_load一般只有一次,load之后,会发生form_activate;
      

  7.   

    Option ExplicitPrivate Sub Form_Activate()
            Debug.Print "Form_Activate"
    End SubPrivate Sub Form_Initialize()
            Debug.Print "Form_Initialize"
    End SubPrivate Sub Form_Load()
            Debug.Print "Form_Load"
    End Sub
    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
            Debug.Print "Form_QueryUnload"
    End SubPrivate Sub Form_Terminate()
            Debug.Print "Form_Terminate"
    End SubPrivate Sub Form_Unload(Cancel As Integer)
            Debug.Print "Form_Unload"
    End Sub
      

  8.   

    窗体调入时侯的顺序
    Form_Initialize
    Form_Load
    Form_Activate窗体卸载时侯的顺序
    Form_QueryUnload
    Form_Unload
    Form_Terminate
      

  9.   

    顺序楼上的已经说过了我说说区别
    Form_Load     只执行一次
    Form_Activate  执行多次,每次窗体切换(内部)时候生效
    验证代码如下
    建立工程,加上一个文本框,添加Form2Private Sub Command1_Click()
        Form2.Show
    End SubPrivate Sub Form_Activate()
        Text1.Text = Text1.Text + vbCrLf + "激活窗体"
    End SubPrivate Sub Form_Load()
        Text1.Text = Text1.Text + vbCrLf + "装载窗体"
    End Sub