VB.net Borderless Form Maximize over Taskbar

六月ゝ 毕业季﹏ 提交于 2019-12-05 04:46:39

问题


When I maximize my borderless form, the form covers the entire screen including the taskbar, which I don't want it to do. I'm finding it very difficult to find a solution to my problem on the net, all I've come up with is the below code, which displays the taskbar for a short time, but then disappears and the form still takes up the entire screen.

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

I'm starting to think the only way to solve my problem is to find the screen size height minus the taskbar height to get the form height, but I'm hoping there might be a simpler answer.


回答1:


Use the form's Load event to set its maximum size, like this:

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

Maximizing it now restricts the size to the monitor's working area, which is the monitor size minus the taskbars.




回答2:


Use the "working area" of the screen:

    Me.Bounds = Screen.GetWorkingArea(Me)



回答3:


You should better do this:

Me.MaximumSize = Screen.FromControl(Me).WorkingArea.Size

Because some users use multiple monitors. So if you use Hans Passant's way, when user maximize application to secondary monitor, application will get primary's monitor working area size and will look awful!!!




回答4:


I think this is a better way to solve your problem

  Private Sub main_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Me.WindowState = FormWindowState.Normal
        Me.StartPosition = FormStartPosition.Manual
        With Screen.PrimaryScreen.WorkingArea
            Me.SetBounds(.Left, .Top, .Width, .Height)
        End With
    End Sub


来源:https://stackoverflow.com/questions/28241326/vb-net-borderless-form-maximize-over-taskbar

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!