form.load事件和form.activate,在vb里有什么区别?

form.load事件和form.activate,在vb里有什么区别?


杨魅力
浏览 2420回答 5
5回答

不负相思意

form_load,发生在装载窗体对象的时候form_Activate发生在窗体得到焦点的时候他们触发的时机完全不同,一个窗体,正常情况下,在其生存期内,form_load只会发生一次,而form_activate可能会发生无数次。

PIPIONE

这个问题的实质其实不是Load 与 Activate的问题,窗体的显示过程中,若还没加载,则先要加载,这会触发Load事件,如果加载完毕,从不显示状态到显示状态时,要触发Activate.所以Load事件时,窗体还是不可见的,Print上去的东西会马上没掉。Activate事件时,窗体已显示,Print上去的东西还可以看到。但时,如果你将窗口最小化(或被其它窗口遮住)后还原,上面的东西又会不见了。因此,问题的关键不在于Load事件和Activate事件,而是窗体Print出来的东西是否维持住(用VB的话说:一个持久性的位图输出),你可以设置窗体的AutoRedraw属性为True,这样Print出来的东西就不会消失,不论在哪个事件里写上面的代码,都会显示。

弑天下

Load事件:在一个窗体被装载时发生。当使用 Load 语句启动应用程序,或引用未装载的窗体属性或控件时,此事件发生。通常,Load 事件过程用来包含一个窗体的启动代码。Load 事件是在 Intialize 事件之后发生。例如,指定控件缺省设置值,指明将要装入 ComboBox 或 ListBox 控件的内容,以及初始窗体级变量等。Activate :当一个对象成为活动窗口时发生。一个对象可以通过诸如单击它,或使用代码中的 Show 或 SetFocus 方法之类的用户操作而变成活动的。Activate 事件仅当一个对象可见时才发生。例如,除非使用 Show 方法或将窗体的 Visible 属性设置为 True,否则,一个用 Load 语句加载的窗体是不可见的。Activate 事件仅当焦点在一个应用程序内移动时才发生。在另一个应用程序中将焦点移向或移离一个对象时,不会触发任何一个事件。Activate 事件在 GotFocus 事件之前发生,LostFocus 事件在 Deactivate 事件之前发生。
打开App,查看更多内容
随时随地看视频慕课网APP