首页 > 解决方案 > 标题栏不消失

问题描述

如果您刚刚阅读本文,请跳至本文的 EDITx5 部分。

当我执行以下操作时,winform 标题栏不会消失,而是隐藏在任务栏后面和/或下方:

EDITx2(更改了步骤顺序):

  1. 将 Windows 10 的屏幕分辨率设置为 1920x1080。

  2. 右键单击Windows 10任务栏->打开任务栏设置->将“在桌面模式下自动隐藏任务栏”设置为ON。

  3. 在 winform 构造函数中:this.FormBorderStyle = FormBorderStyle.None; this.ShowInTaskbar = false;

  4. 通过计时器事件自动为窗口编程最小化和最大化功能。

  5. 运行应用程序。

  6. 在应用程序运行时将 Windows 10 屏幕分辨率设置为 1280x800。

  7. 请注意,当应用程序窗口最小化时,当应用程序运行时,任务栏后面会放置一个短标题栏。

奇怪的是,当我执行以下操作时,不会发生上述情况,并且标题栏在所有分辨率下都隐藏,但应用程序通过任务栏中的任务栏图标显示,这是不需要的:

this.FormBorderStyle = FormBorderStyle.None;
this.ShowInTaskbar = true;

该问题可能与需要始终具有可用于某些屏幕分辨率的窗口有关?

尝试设置所有表单自动调整大小、自动缩放等属性不起作用。

为什么会发生这种情况,我该如何解决?

任何帮助深表感谢。

谢谢阅读。

编辑:

更具体地说,设置this.FormBorderStyle = FormBorderStyle.None;有效,但仅适用于某些屏幕分辨率,如 1980x1080。如果我执行步骤 1~7,任务栏后面会有一个小标题栏。

此外,尝试以下方法也不起作用:

this.ControlBox = false;

this.Text = String.Empty;

this.FormBorderStyle = FormBorderStyle.FixedSingle;

this.ShowInTaskbar = false;

编辑x3:

实际上,最初在屏幕分辨率为 1280x800 时运行应用程序,然后使用计时器事件将窗口最小化和最大化几次,导致标题栏随机出现在任务栏/隐藏任务栏时。即使这样做,我仍然没有找到解决方案: this.FormBorderStyle = FormBorderStyle.None; this.ShowInTaskbar = false;

编辑x4

对于不断更新这个问题,我深表歉意。我发现的最后一件事。将应用程序运行时的缩放比例从 125% 更改为 100% 会使标题栏随机出现在我屏幕的左下角。这些属性在构造函数中设置: this.FormBorderStyle = FormBorderStyle.None; this.ShowInTaskbar = false;

编辑x5

将电脑分辨率设置为任何东西(我在 1920x1080)。将电脑缩放设置设置为 100%。将其放入表单构造函数中:

this.FormBorderStyle = FormBorderStyle.None; this.ShowInTaskbar = false; this.windowedState = formwindowstate.minimized;

有一个计时器最小化和最大化窗体的窗口状态,或者提供某种方式以定时的方式最小化和最大化窗体窗口。然后标题栏将随机出现在屏幕的左下角部分,即使它应该通过将 formborderstyle 设置为 none 来消失。这是winforms中的错误?其他人可以复制这个问题吗?

标签: c#winformstaskbartitlebar

解决方案


更新:

在尝试了多件事之后,有效的简单代码是这样的:

为了最小化:

this.windowstate = formwindowstate.minimized;
this.hide();

为了最大化:

this.windowstate = formwindowstate.maximized;
this.show();

推荐阅读