C# 表单最大化应该覆盖任务栏,即使在切换正常最大化后也是如此

C# 表单最大化应该覆盖任务栏,即使在切换正常最大化后也是如此,c#,winforms,C#,Winforms,我正在用C#编写一个Windows窗体应用程序,其中包含一个最大化的窗口,没有标题,应该最大化并覆盖任务栏(即任务栏上方)。这非常简单,我可以通过执行以下命令来实现: Text = ""; ControlBox = false; FormBorderStyle = FormBorderStyle.None; …在我打开表格之前。问题是,我还希望能够通过击键切换此行为,这样我就可以正常显示它(带有标题),然后能够返回到最大化(没有标题)。问题是,当我回到maximized时,任务栏不再被窗口覆盖

我正在用C#编写一个Windows窗体应用程序,其中包含一个最大化的窗口,没有标题,应该最大化并覆盖任务栏(即任务栏上方)。这非常简单,我可以通过执行以下命令来实现:

Text = "";
ControlBox = false;
FormBorderStyle = FormBorderStyle.None;
…在我打开表格之前。问题是,我还希望能够通过击键切换此行为,这样我就可以正常显示它(带有标题),然后能够返回到最大化(没有标题)。问题是,当我回到maximized时,任务栏不再被窗口覆盖,它是可见的,而不应该是可见的

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

这应该可以:

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键在正常最大化(或恢复)和全屏之间切换窗体。如果希望捕获来自表单上任何控件的击键,可能需要将表单属性设置为
true


希望这能有所帮助。

任务栏的可视性取决于用户,而不是您。是否查找属性?@UffePeterWalderö很高兴我能提供帮助。如果答案解决了你的问题,你可以考虑。如果还有什么不清楚的,请告诉我。