如何通过单击按钮最小化我的应用程序中的所有活动表单?
我一次可以看到多个表单,当我单击其中一个表单上的单个按钮时,我希望所有活动表单都最小化。
我怎样才能做到这一点?
如果您不想最小化 MDI 子窗口,您可以简单地遍历应用程序中所有打开的窗体并将它们的WindowState
属性设置为“最小化”。VB.NETOpenForms
为您的类提供了一个集合Application
,使这变得非常简单。
将以下示例代码放入Click
按钮控件的事件处理程序或类似方法中:
For Each frm As Form in Application.OpenForms
frm.WindowState = FormWindowState.Minimized
Next frm
如果要在用户单击单个表单标题栏上的系统最小化框时最小化所有表单,则需要监听该事件并执行上述代码。为此,请覆盖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
您可以像这样遍历 Application.Forms 集合。
For Each form as Form in Application.OpenForms
.....
End For
这有帮助吗?