有关 MDI 窗体的小问题,请大家帮忙!

Blackduck 2003-04-29 01:46:37
我制作了一个带 MDI 窗体的程序,可以同时打开几个子窗体运行,开始觉得很好,但后来一想麻烦大了,我在关闭主窗体时如何判断还有子窗体未关闭?有些窗体必须先关闭后才能关闭主窗体.请各位告诉我一个办法,谢谢了!
...全文
81 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Blackduck 2003-05-06
  • 打赏
  • 举报
回复
谢谢大家!结贴!
lazycat818 2003-04-30
  • 打赏
  • 举报
回复
设立一个动态数组或集合,加入为动态数组aFormState()as byte,每打开一个窗口,Redim Preserve aFormState(gFormNum+1)设为1,改动设为2,关闭设为0,给打开的窗口的Tag属性赋值为窗口打开的序号。然后用aFormState(val(form.tag))判断状态。具体做法不用我说了吧?
lazycat818 2003-04-30
  • 打赏
  • 举报
回复
如果想在关闭主窗体时处理子窗体,如保存信息,可在QueryUnload中进行处理,如果此时想取消关闭过程,Cancel=1即可。
用户 昵称 2003-04-30
  • 打赏
  • 举报
回复
给打开的窗口的Tag属性赋值为窗口打开的序号
Blackduck 2003-04-29
  • 打赏
  • 举报
回复
up
会飞的魔术师 2003-04-29
  • 打赏
  • 举报
回复
if not (mdiform.activeform is nothing) then
cancel=1
end if
remanwang 2003-04-29
  • 打赏
  • 举报
回复
在关闭主窗体之前所有的子窗体会自动关闭,不用你处理
tshow 2003-04-29
  • 打赏
  • 举报
回复
用一个end结束程序,所有窗体都关了
holydiablo 2003-04-29
  • 打赏
  • 举报
回复
其实很简单

if mdiform.activeform is nothing
unload mdiform
endif
饮水需思源 2003-04-29
  • 打赏
  • 举报
回复
Dim frm As Form
For Each frm In Forms
If frm.Name <> mdi.Name Then
Unload frm
End If
Next
DimVar 2003-04-29
  • 打赏
  • 举报
回复
同意 yefanqiu(叶帆)
刘洪峰AIoT 2003-04-29
  • 打赏
  • 举报
回复
for i=0 to forms.count-1
unload forms(i)
next i
James0001 2003-04-29
  • 打赏
  • 举报
回复
枚举(?) forms 的所有窗体,看你要的窗体是否在里面。如果是的话那么那个窗体就还没有被关闭掉。

dim x as form,b as boolean
for each x in forms
if x is desiredForm then
'还开着
b=true
exit for
endif
next
if not b then
'已经关闭了
endif
Blackduck 2003-04-29
  • 打赏
  • 举报
回复
谢谢大家,我的意思是如何判断一个特定的子窗体是否关闭,怎么才能得到已经打开的子窗体的状态,谢谢大家在帮我想一想办法.
谢谢!
lfshf 2003-04-29
  • 打赏
  • 举报
回复
很简单,建立一个子程序,专门用于Unload 子窗体
Sub UnloadChildForm()
unload form1
unload form2
....
把所有子窗体写上
End sub
在MDIUnload过程的第一句执行本子程序,掂!

7,787

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧