1

我正在尝试使用自定义关闭和最小化按钮创建一个无边框表单。但是,似乎将边框设置为无并将窗口状态设置为最大化会导致表单隐藏任务栏,这不是我想要的。请注意,我使用的是 Windows 7,我在这里和其他地方阅读了几个答案,似乎对我没有任何帮助,任务栏总是被隐藏。下面列出了一些没有运气的尝试:

  • this.WindowState = FormWindowState.Maximized; this.FormBorderStyle = FormBorderStyle.None; this.TopMost = true;

  • Screen screen = Screen.FromPoint(this.Location); this.Size = screen.WorkingArea.Size; this.Location = Point.Empty;

  • this.Bounds = Screen.PrimaryScreen.WorkingArea;

4

5 回答 5

6

我想这就是你要找的

this.MaximumSize = Screen.PrimaryScreen.WorkingArea.Size;

检查这个

于 2014-04-21T17:26:52.223 回答
1

这是最简单的解决方案:

this.Width = Screen.PrimaryScreen.Bounds.Width;
this.Height = Screen.PrimaryScreen.Bounds.Height - 40;

this.Location = new Point();

this.StartPosition = FormStartPosition.Manual;

在此示例中,我假设任务栏是可见的,并且该任务栏位于底部。您可以阅读此问题/答案如何以编程方式确定 Windows 任务栏是否隐藏?为了通过自动检测任务栏状态来扩展我的示例。

下面是如何确定任务栏大小的示例:如何获取任务栏的位置和大小?.

在我的分辨率下,任务栏大小为 40。

于 2012-10-09T22:45:54.220 回答
1

当您将表单边框样式设置为无时,表单将隐藏任务栏。要解决这个问题,您必须手动设置表单的 MaximumSize。如果 Windows 自动隐藏任务栏,表单甚至会覆盖隐藏的任务栏!为了解决这个问题,将最大尺寸高度降低一个像素(如果您的任务栏位于底部)!

        Me.MaximumSize = New Size(My.Computer.Screen.WorkingArea.Size.Width, _
                                  My.Computer.Screen.WorkingArea.Size.Height - 1)
于 2013-03-06T14:25:43.733 回答
0

这似乎是您告诉表单展示的行为 - 如果您告诉它在最上面并将边界明确设置为整个屏幕,它将覆盖任务栏。(这通常在 POS 和触摸屏应用程序中完成)

尝试只设置 FormWindowState.Maximized 而不是告诉边界填满整个屏幕。

于 2012-10-09T22:48:49.123 回答
0

只需将开始位置设置为手动并将 MaximizeBox 属性设置为 true。当通过单击最大化按钮加载并最大化表单时,您可以拥有任务栏!

于 2014-08-06T10:53:50.483 回答