永发信息网

vba中多个窗口嵌套,按顺序使用unload me语句一个个的关闭子窗口,为什么有时会出现一个unload me执行完后

答案:2  悬赏:30  手机版
解决时间 2021-03-15 18:00
  • 提问者网友:练爱
  • 2021-03-15 07:35
vba中多个窗口嵌套,按顺序使用unload me语句一个个的关闭子窗口,为什么有时会出现一个unload me执行完后,其它的不应该关闭也关了?如下面的列子:
'userform1中有一个CommandButton1按钮,单击事件如下
Private Sub CommandButton1_Click()
UserForm2.Show
End Sub

'userform2中也有一个CommandButton1按钮,单击事件如下
Private Sub CommandButton1_Click()

Unload Me''''注意,这里不用Me.hide,因为hide不能清空本窗口中的数据,下次再show本窗
''''口时,原来的数据还在.
End Sub

按程序理解,单击userform2中的按钮,会退出userform2,userform1不会退出.
但为什么有时用同样的方法使用unload me时,会出现单击userform2中的按钮,userform1也会退出.也就是说一个unload me 把所有的窗口全关了,这并不是我们想要的结果.
最佳答案
  • 五星知识达人网友:持酒劝斜阳
  • 2021-03-15 08:03
吧unload me换成unload userform2试试? 然后在看看程序里面有没有在unload语句中加入end之类的。
全部回答
  • 1楼网友:渡鹤影
  • 2021-03-15 08:28
unload 语句在vba状态下使用。其功能是从内存中卸载窗体或控件。 unload语法 unload object object 所在处是要卸载的 form 对象或控件数组元素的名称。 说明 当所占内存另有它用,或需要重新设置窗体、控件的属性为初始值时,就有必要卸载窗体或控件。 在卸载窗体前,会发生 query_unload 事件过程,然后是 form_unload 事件过程。在其中任一过程中设置 cancel 参数为 true 可防止窗体被卸载。若为 mdiform 对象,先发生 mdiform 对象的 query_unload 事件过程,接着是各 mdi 子窗体 的 query_unload 事件过程和 form_unload 事件过程,最后是 mdiform 对象的 form_unload 事件过程。 当窗体卸载之后,所有在运行时 放到该窗体上的控件都不再是可访问的。在设计时放到该窗体上的控件将保持不变;但是,当窗体重新加载时,在运行时对这些控件及其属性的任何更改将丢失。所有对于窗体属性的更改也将丢失。对窗体上任何控件的访问会导致窗体重新加载。 注意 在卸载窗体时,只有显示的部件被卸载。和该窗体模块相关联的代码还保持在内存中。 只有在运行时添加到窗体上的控件数组元素才能用 unload 语句卸载。 重新加载被卸载的控件时,其属性会被重新初始化。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯