【问题标题】:How Can I Minimize A Borderless Form Completely?如何完全最小化无边界表单?
【发布时间】:2015-01-15 01:01:13
【问题描述】:

在我的应用程序中,我的主表单和其他无边框表单位于顶部。当我最小化主窗体时,我想最小化所有窗体,但只在任务栏中显示主窗体。目前发生的情况是主窗体进入任务栏,但所有其他打开的窗体在任务栏正上方的左下角创建迷你矩形。

有没有办法隐藏这些丑陋的矩形?单击每个矩形将弹出该特定窗口(我希望阻止该窗口)。我只想让用户选择单击任务栏中的主窗体以自动调出所有窗口。

谢谢

编辑

为了隐藏所有表单,我在主表单中的Resize 事件中添加了以下代码:

Private Sub frmDashBoard_Resize(sender As Object, e As EventArgs) Handles Me.Resize
        If Me.WindowState = FormWindowState.Minimized Then
            If focusedForm IsNot Nothing Then
                If focusedForm.Tag Is "StorePage" Then
                    focusedForm.WindowState = FormWindowState.Minimized
                End If
            End If
        End If

        If Me.WindowState = FormWindowState.Maximized Then
            If focusedForm IsNot Nothing Then
                If focusedForm.Tag Is "StorePage" Then
                    focusedForm.WindowState = FormWindowState.Maximized
                End If
            End If
        End If
End Sub

基本上,我将 StorePage 打开时设置为 focusedForm。所以focusedForm 将引用我的应用程序中最顶层的表单。

【问题讨论】:

  • 您为无边界表单的ShowInTaskBar 属性输入了什么?
  • ShowInTaskBar = True隐藏最小化的窗口(又名丑陋的矩形)
  • 我将 ShowInTaskBar 属性设置为 False。如果我将其设置为 True,那么我会在任务栏中获得一个我不想要的单个窗口的条目。我只想要一个主窗体的任务栏条目......如果可能的话。
  • 能否请您发布用于隐藏表单的代码
  • 看起来您想开发某种仪表板,您是否考虑过创建 MDI 应用程序

标签: vb.net winforms windowstate


【解决方案1】:

不要最小化您的表单,而是让它们不可见,如果您不想看到它们,也不想让它们显示在任务栏中,这正是您想要的:

If focusedForm.Tag Is "StorePage" Then
    focusedForm.Visible = (Me.WindowState <> FormWindowState.Minimized)
End If

等等

【讨论】:

  • HeyHeyJC - 在最小化上效果很好,但是当我恢复时,由于某种原因,它正在为无边框表单添加一个条目到任务栏......奇怪
  • 嗯。我在这里没有看到。 ShowInTaskBar 还是 False 吗?
  • 是的,但我刚刚将它重新添加到WindowState = FormWindowState.Maximed 代码中,它似乎已经修复了它。看起来它在恢复表单时正在重置该属性(无论如何在我的应用程序中)。
  • 酷。你可以标记我的答案吗?不想问,但我失去了以前的登录信息,而且我完全没有代表。
  • 是的,绝对...感谢您的帮助!无论如何我都会标记它,所以不用担心询问。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-25
  • 1970-01-01
相关资源
最近更新 更多