【问题标题】:Form maximized should cover taskbar, even after toggled normal-maximized最大化的表单应该覆盖任务栏,即使在切换正常最大化之后
【发布时间】:2018-04-17 01:57:17
【问题描述】:

我正在用 C# 编写一个 Windows 窗体应用程序,其中包含一个没有标题的最大化窗口,它应该被最大化并覆盖任务栏(即在任务栏上方)。这很简单,我只需执行以下操作即可实现:

Text = "";
ControlBox = false;
FormBorderStyle = FormBorderStyle.None;

..在我打开表格之前。问题是,我还希望能够通过击键来切换此行为,以便可以将其标准化(带标题)显示,然后能够返回最大化(不带标题)。问题是,当我回到最大化时,任务栏不再被窗口覆盖,它是可见的,它不应该是。

有人知道这是否可以显示,即没有标题栏覆盖任务栏的最大化窗口,还是只有在第一次打开窗口时才有可能?也可以来回切换吗?

【问题讨论】:

  • 任务栏的可见性取决于用户,而不是您。
  • 正在寻找FullScreen 属性?

标签: c# winforms


【解决方案1】:

这应该可行:

bool IsFullScreen = false;      // Set this to true if you initially open 
                                // your form in full screen.
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.F)
    {
        if (!IsFullScreen)
        {
            // Changing the WindowState helps keeping the form over the taskbar.
            WindowState = FormWindowState.Normal;       
            FormBorderStyle = FormBorderStyle.None;
            WindowState = FormWindowState.Maximized;
            IsFullScreen = true;
        }
        else
        {
            FormBorderStyle = FormBorderStyle.Sizable;
            // WindowState = FormWindowState.Normal;   // uncomment this if you also don't 
                                                       // want the form to be maximized.
            IsFullScreen = false;
        }
    }
}

它将允许您通过按 F 键在正常最大化(或恢复)和全屏之间切换表单。如果您想从表单上的任何控件捕获击键,您可能需要将表单的 KeyPreview 属性设置为 true

希望对您有所帮助。

【讨论】:

  • @UffePeterWalderö 很高兴我能提供帮助。如果答案解决了您的问题,您可以考虑accepting it。如果还有不清楚的地方,请告诉我。
猜你喜欢
  • 1970-01-01
  • 2014-07-26
  • 1970-01-01
  • 2010-11-30
  • 2014-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多