如何通过单击按钮来最小化应用程序中的所有活动表单?
我一次可以看到多个表单,当我单击其中一个表单上的单个按钮时,我希望所有活动表单都能最小化。
我怎样才能做到这一点?
答案 0 :(得分:7)
如果您没有尝试最小化MDI子窗口,您可以简单地遍历应用程序中的所有打开表单,并将WindowState
property设置为“最小化”。 VB.NET为你的OpenForms
类提供了一个Application
集合,使这个简单易懂。
将以下示例代码放入按钮控件的Click
事件处理程序或类似方法中:
For Each frm As Form in Application.OpenForms
frm.WindowState = FormWindowState.Minimized
Next frm
如果要在用户单击单个表单标题栏上的 system 最小化框时最小化所有表单,则需要监听该事件,并执行上述代码。通过覆盖要将其最小化事件应用于所有打开表单的每个表单的OnSizeChanged
方法来执行此操作。
通过单击其任务栏图标,只要还原其中一个表单,您也可以使所有表单恢复到正常状态。只需反转用于最小化窗口的相同过程,指定“正常”窗口状态而不是“最小化”。
例如,您可以编写以下代码:
Protected Overrides Sub OnSizeChanged(ByVal e As System.EventArgs)
' Call the base class first
MyBase.OnSizeChanged(e)
' See if this form was just minimized
If Me.WindowState = FormWindowState.Minimized Then
' Minimize all open forms
For Each frm As Form In Application.OpenForms
frm.WindowState = FormWindowState.Minimized
Next frm
ElseIf Me.WindowState = FormWindowState.Normal Then
' Restore all open forms
For Each frm As Form In Application.OpenForms
frm.WindowState = FormWindowState.Normal
Next frm
End If
End Sub
答案 1 :(得分:3)
您可以像这样迭代Application.Forms集合。
For Each form as Form in Application.OpenForms
.....
End For
这有帮助吗?