Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 最大化屏幕忽略任务栏_.net_Winforms_Taskbar - Fatal编程技术网

.net 最大化屏幕忽略任务栏

.net 最大化屏幕忽略任务栏,.net,winforms,taskbar,.net,Winforms,Taskbar,我有一个表单设置为最大化,但出于某种原因,它忽略了任务栏并最大化了整个屏幕。这是典型的吗?有解决办法吗 我使用双监视器设置运行WindowsXP(第一个/主窗口中的任务栏)。在最大化窗体边框之前,将窗体边框设置为“无” 此代码将在单个监视器中工作: private void Form1_Load(object sender, EventArgs e) { this.FormBorderStyle = FormBorderStyle.None; this.WindowState =

我有一个表单设置为最大化,但出于某种原因,它忽略了任务栏并最大化了整个屏幕。这是典型的吗?有解决办法吗


我使用双监视器设置运行WindowsXP(第一个/主窗口中的任务栏)。

在最大化窗体边框之前,将窗体边框设置为“无”

此代码将在单个监视器中工作:

private void Form1_Load(object sender, EventArgs e)
{
    this.FormBorderStyle = FormBorderStyle.None;
    this.WindowState = FormWindowState.Maximized;
}
我还没有测试过双监视器场景,因为我现在还没有P

编辑:我没有看到“最大化屏幕忽略任务栏”。忽略是什么意思


您想让表单覆盖任务栏并填满整个屏幕吗?

我在描述中遗漏了一件事——我已经关闭了最大化按钮。当我测试重新打开该属性时,任务栏再次出现。显然,它假设如果你不想要一个最大化按钮,你正在创建一个亭式的应用程序,你不想让你的用户看到除了应用程序屏幕以外的任何东西。这不完全是我所期望的,但我想是可行的。

如果不想重新启用“最大化”按钮,可以手动设置窗口的大小:

private void Maximize()
{
    Screen screen = Screen.FromPoint(this.Location);
    this.Size = screen.WorkingArea.Size;
    this.Location = Point.Empty;
}

(WorkingArea是屏幕上可供应用程序使用的区域,不包括任务栏和其他工具栏)

如果您使用的是FormBorderStyle。无,则确保最大化时不会覆盖任务栏非常简单:

this.MaximumSize = Screen.PrimaryScreen.WorkingArea.Size;
它可能适用于其他边框样式,并且可能是确保窗体不覆盖任务栏的最干净的方式。

任务栏可以停靠在左侧、顶部、底部和右侧。如果要最大化窗口而不覆盖任务栏,请使用以下代码:

……切。。。 公共部分类表单2:表单 { 公共表格2() { //将默认启动位置设置为手动 this.StartPosition=System.Windows.Forms.FormStartPosition.Manual; //设置窗体的位置和大小。 this.Bounds=Screen.PrimaryScreen.WorkingArea; .... 初始化组件(); } ……切。。。
将窗体边框样式设置为“无”时,窗体将隐藏任务栏。 要解决这个问题,您必须手动设置表单的最大大小。 如果windows自动隐藏任务栏,表单甚至会覆盖隐藏的任务栏! 要解决这个问题,请将最大尺寸高度降低一个像素(如果任务栏位于底部)


我在描述中遗漏了一件事——我关闭了最大化按钮。当我测试重新打开该属性时,任务栏再次出现。显然,它假设如果你不想要最大化按钮,你正在创建一个亭式的应用程序,你不想让你的用户看到除应用程序屏幕以外的任何东西。不完全是什么我想是的,但我想是有效的

我遇到了这个问题,在杰夫的帮助下解决了。 首先,将窗口状态设置为最大化,但不要禁用最大化框。 然后,如果希望禁用MaximizeBox,则应以编程方式执行此操作:

private void frmMain_Load(object sender, EventArgs e)
{
   this.MaximizeBox = false;
}

我所做的是:

  • 将MaximizeBox属性设置为true
  • 将WindowsState设置为最大化
  • 在表单的构造函数中,写下以下内容:

    this.Bounds=Screen.PrimaryScreen.WorkingArea


他的意思是他的表单覆盖了整个屏幕,甚至隐藏了他不想要的任务栏。要添加这一点,他应该检查表单的FormBorderStyle属性,并确保它没有设置为FormBorderStyle。无。属性设置为False吗?指定MaximizedBounds属性。您可能应该使用
screen.FromControl(此)
而不是
Screen.PrimaryScreen
。如果用户有多个屏幕,您的控件不一定在主屏幕上。不能跨屏幕工作。如果在form
OnMove
事件中设置
MaximumSize
,您将得到一个在非最大化模式下受限于屏幕宽度的表单(这不是默认行为)。不起作用--sys menu maximize不会调用您的
maximize()
method@ZachSaw,当然不会,为什么会呢?这是一种你必须自己调用的方法。当你有系统菜单弹出窗口时,它根本不会显示为最大化状态!
        Me.MaximumSize = New Size(My.Computer.Screen.WorkingArea.Size.Width, _
                                  My.Computer.Screen.WorkingArea.Size.Height - 1)
private void frmMain_Load(object sender, EventArgs e)
{
   this.MaximizeBox = false;
}