主窗体使用mdi窗体的话关闭mdi窗体自动关掉所有mdichild窗体或者使用一个数组变量,当从窗体form1打开另外的窗体的时候进行赋值,最后关闭所有窗体Dim Frm(100) As Form Private Sub Command2_Click() Dim I As Integer I = UBound(Frm) Set Frm(I) = Form2 Form2.Show End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) On Error Resume Next For I = 1 To UBound(Frm) Unload Frm(I) Next End Sub
Dim openform(100) As Form Dim formflag As Integer Private Sub Command1_Click() Form2.Show Form3.Show saveform Form2 saveform Form3End Sub Private Sub saveform(tmpform As Form) Set openform(formflag) = tmpform
formflag = formflag + 1
End SubPrivate Sub Form_Unload(Cancel As Integer) On Error Resume Next For i = 0 To formflag Unload openform(i) Next End Sub
dim frm as form dim obj as object for each frm in vb.forms for each obj im frm.comtrols set obj=nothing next obj unload frm next frm************************** for each frm in vb.forms if not frm is me then unload frm next unload me
dim i as integerfor i =forms.count-1 to 1 unload forms(i) next这段代码可以关闭除了执行这段代码的窗体外的所有窗体。
針對mdi 題:如何一次關閉 MDIForm 內的所有子表單? 來源:Tai Choo Tack / VISUAL BASIC PROGRAMMER'S JOURNAL 版本:VB6 / VB5 / VB4-32 / VB4-16 / VB3 -------------------------------------------------------------------------------- 以下這段程式可以讓您一次關閉 MDIForm 內的所有子表單,首先在 MDIForm 中建立一個 Menu,假設取名為 mnuCloseAll,則程式碼如下:Private Sub mnuCloseAll_Click() 'Screen.MousePointer = vbHourglass Do While Not (Me.ActiveForm Is Nothing) Unload Me.ActiveForm Loop 'Screen.MousePointer = vbDefault End Sub
Private Sub Command2_Click()
Dim I As Integer
I = UBound(Frm)
Set Frm(I) = Form2
Form2.Show
End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
On Error Resume Next
For I = 1 To UBound(Frm)
Unload Frm(I)
Next
End Sub
Dim formflag As Integer
Private Sub Command1_Click()
Form2.Show
Form3.Show
saveform Form2
saveform Form3End Sub
Private Sub saveform(tmpform As Form) Set openform(formflag) = tmpform
formflag = formflag + 1
End SubPrivate Sub Form_Unload(Cancel As Integer)
On Error Resume Next
For i = 0 To formflag
Unload openform(i)
Next
End Sub
Object(窗体).showUnload的使用方法:
Unload Object(窗体)
dim obj as object
for each frm in vb.forms
for each obj im frm.comtrols
set obj=nothing
next obj
unload frm
next frm**************************
for each frm in vb.forms
if not frm is me then unload frm
next
unload me
unload forms(i)
next这段代码可以关闭除了执行这段代码的窗体外的所有窗体。
題:如何一次關閉 MDIForm 內的所有子表單?
來源:Tai Choo Tack / VISUAL BASIC PROGRAMMER'S JOURNAL
版本:VB6 / VB5 / VB4-32 / VB4-16 / VB3 --------------------------------------------------------------------------------
以下這段程式可以讓您一次關閉 MDIForm 內的所有子表單,首先在 MDIForm 中建立一個 Menu,假設取名為 mnuCloseAll,則程式碼如下:Private Sub mnuCloseAll_Click()
'Screen.MousePointer = vbHourglass
Do While Not (Me.ActiveForm Is Nothing)
Unload Me.ActiveForm
Loop
'Screen.MousePointer = vbDefault
End Sub
你说的关闭第一个form时要同时关闭其他由第一个form打开的form吗?那你的程序还要不要继续运行了呢?如果就是在关闭第一个form时退出程序就好办了,直接在第一个form的Unload事件里加上end就成了
不知你是不是这个意思
只要加一行end
什么都解决了