为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

杨魅力 2019-04-03 11:07:37
form.load事件和form.activate,在vb里有什么区别?
查看完整描述

5 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

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

查看完整回答
反对 回复 2019-04-06
?
PIPIONE

TA贡献1829条经验 获得超9个赞

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

查看完整回答
反对 回复 2019-04-06
?
弑天下

TA贡献1818条经验 获得超7个赞

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



查看完整回答
反对 回复 2019-04-06
  • 5 回答
  • 0 关注
  • 2198 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信