使表单最大化,但不是全屏

时间:2018-06-03 02:05:17

标签: vb.net winforms

我想使我的Form1最大化,但不是全屏,因为最大限度地采用整个屏幕,同时留下专用于底部任务栏的空间。为了澄清,我希望我的应用程序可以解决传统上其他应用程序的工作原理,例如Chrome或MS Office套件最大化时。绝对没什么特别的。

为了让我的应用程序动态调整大小,我已经计算出按钮适合应用程序的高度和宽度的位置。但是,我很快发现我的应用程序处于最大化状态,实际上继续在任务栏下面(或者反过来,任务栏完全被应用程序切断 - 它是全屏幕)。我最底部的按钮实际上被任务栏切断了。在尝试不同的表单设置后,我发现这似乎完全是WindowState = FormWindowState.Maximized设置的结果。

我尝试了各种途径来抵消这种行为。首先,我尝试以编程方式调整最大边界大小,同时将Form的MaximumSize设置为" 0,0" (默认"根据需要调整大小"设置)。我在Form_Load事件中有这段代码:

    Me.MaximizedBounds = Screen.PrimaryScreen.WorkingArea

    Me.MaximizedBounds = Screen.FromHandle(Me.Handle).WorkingArea

然而,即使确认工作区域高度小于表格高度,这些也没有任何影响。事实上,经过进一步的测试,除了手动在表单属性中设置MaximumSize为100,100之外,我还无法以编程方式更改最大化边界。有人在这里有建议吗?

我还尝试更改WindowsState = FormWindowState.Manual并以这种方式重新调整表单高度:

    Width = Screen.PrimaryScreen.WorkingArea.Width
    Height = Screen.PrimaryScreen.WorkingArea.Height

这使得窗体更接近专用尺寸,但使窗口可移动,不再覆盖整个传统上最大化的屏幕(它在所有边上留下大约20个像素的填充)。

最后,我对如何做到这一点感到有点失落,并且非常感谢一些澄清。我尝试了其他代码,我很乐意在论坛上分享,以及类似的问题,但没有一个帮助我实现我的目标行为。我对Windows 10的最新更新有一个锁定的任务栏,如果这些细节有所不同。

0 个答案:

没有答案