送分100分:Activate、initialize、load、show 四者的执行顺序以及Activate、initialize、load三者的区别

解决方案 »

  1.   

    initialize load show activate
      

  2.   

    Activate、initialize、load、是事件show是方法这个怎么比较
      

  3.   

    三个测试Private Sub Form_Activate()
        Debug.Print "Activate"
    End SubPrivate Sub Form_Initialize()
        Debug.Print "initialize"
    End SubPrivate Sub Form_Load()
        Debug.Print "load"
    End Sub结果
    initialize
    load
    Activate
      

  4.   

    Initialize
    这个事件只有在应用程序第一次创建窗口实例的时候才触发。在一个有启动窗口的应用程序中,发生的第一个事件是Initialize事件。,如果,例如下面的语句被执行:   Set x = New Form1
    需 要在Form_load事件加载之前完成的任务可以(在Visual Basic4.0)在Form_Initialize语句中执行。任何在窗口创建后只需执行一次的语句可以放在这里。但是你应该小心这里不应该涉及到窗口 中的控件属性,因为这样做会导致一个自动的Form_load事件发生。Load
    Form_load事件在窗口加载到内存的时候被触发。通过显式的Load语句,在窗口未执行load事件时调用show方法,或者在一行代码中涉及到任何未loaded的窗口的属性,都可以触发form的load事件。Activate就如我们之前描述的情况,Activate事件在窗口每次称为活动窗口时都被调用,只要焦点在程序的窗体之间移动了。但是如果焦点从这个应用程序之外的窗体中转移过来,这个事件则不会发生。
      

  5.   

    我的MDI程序中,只有一个子窗体。
    在MDI程序运行的过程中,这个子窗体只有在第一次打开时执行Form_Initialize,而load 和 Activate 是每次打开都执行。也就是说,当我运行了这个MDI程序后,比如反反复复打开和关闭这个子窗体10遍,load 和 Activate各执行10遍,而这个子窗体的Initialize只执行一遍,就是在这个了窗体第一次条开的时候。这是为什么呢?
      

  6.   

    我发现在一个MDI程序中,反复5次打开一个固定的子窗体时,initialize只在这个子窗体第一次打开时执行,而Activate、load每次打开时都执行。为什么initialize只执行一次呢?
      

  7.   

    可以简单理解为
     initialize 初始化(初始化即创建过而没有释放下次就不执行)
     load 加载
     show 显示
     activate 激活
      

  8.   


    Initialize
    这个事件只有在应用程序第一次创建窗口实例的时候才触发
    *********************************************
    子窗体关闭后,实例还在不用mdi窗体,用form1调用form2就可以看出
    form1
    Private Sub Command1_Click()
        Form2.Show
    End SubPrivate Sub Command2_Click()
        Set Form2 = Nothing
    End Subform2Private Sub Form_Activate()
        Debug.Print "Activate2"
    End SubPrivate Sub Form_Initialize()
        Debug.Print "initialize2"
    End SubPrivate Sub Form_Load()
        Debug.Print "load2"
    End Sub你点击command2和不点击效果不一样
      

  9.   


    看的不能仔细点吗?8楼已经贴给你了Private Sub Command2_Click()
        Set Form2 = Nothing
    End Sub
      

  10.   

    8楼的代码lz难道没有试验?8楼已经告诉你了
    你点击command2和不点击效果不一样
      

  11.   

    '从对象的角度来理解:下面可能会以 FORM 为例说明;Initialize:'初始化类,只有且仅当这个类的实例被创建时发生此事件;Load:'加载窗体内所有其他对象及窗体本身时发生,此事件发生的前提是对象的实例已经被创建;Activate:'窗体成为活动窗口时,也就是已经显示在屏幕上的时候,此事件发生;Show:'是用于显示窗体的方法;
      

  12.   

    我来补充一点:当按重Shift键时Activate是不会被执行的