VB.net 无边框窗体在任务栏上最大化

Jar*_*ron 3 vb.net taskbar maximize maximize-window

当我最大化我的无边框表单时,该表单会覆盖整个屏幕,包括任务栏,这是我不希望它这样做的。我发现很难在网上找到我的问题的解决方案,我想出的只是下面的代码,它在短时间内显示任务栏,但随后消失了,表单仍然占据了整个屏幕。

Private Sub TableLayoutPanel1_DoubleClick(sender As Object, e As MouseEventArgs) Handles TableLayoutPanel1.DoubleClick
    If e.Location.Y < 30 Then
        Me.WindowState = FormWindowState.Maximized
        Me.ControlBox = True
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

我开始认为解决我的问题的唯一方法是找到屏幕尺寸高度减去任务栏高度以获得表单高度,但我希望可能有一个更简单的答案。

Han*_*ant 5

使用表单的 Load 事件设置其最大大小,如下所示:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Me.MaximumSize = Screen.FromRectangle(Me.Bounds).WorkingArea.Size
End Sub
Run Code Online (Sandbox Code Playgroud)

现在最大化它会限制监视器工作区域的大小,即监视器大小减去任务栏。