C# 如何使我的windows在两台显示器上都显示全屏(我有两台显示器)?

C# 如何使我的windows在两台显示器上都显示全屏(我有两台显示器)?,c#,C#,在我的代码中,我写了以下内容: this.TopMost = true; this.FormBorderStyle = FormBorderStyle.None; this.WindowState = FormWindowState.Maximized; 我想让它填满我的其他显示器。“最大化”,顾名思义,就是填满一个显示器。如果在多显示器桌面上最大化窗口,它将填充包含窗口大部分区域的显示器。(唯一不同的方法是,如果你有一个视频卡/驱动程序,将你所有的显示器组合成一个巨大的显示器,这样操作系统就

在我的代码中,我写了以下内容:

this.TopMost = true;
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
我想让它填满我的其他显示器。

“最大化”,顾名思义,就是填满一个显示器。如果在多显示器桌面上最大化窗口,它将填充包含窗口大部分区域的显示器。(唯一不同的方法是,如果你有一个视频卡/驱动程序,将你所有的显示器组合成一个巨大的显示器,这样操作系统就不会看到单独的显示器。)

一般来说,没有办法让一个窗口填满所有监视器。原因是虚拟屏幕可能不是一个完美的矩形。是由连接到系统的所有监控器的并集创建的矩形。如果这些显示器的大小或形状不同,或者排列方式不寻常,那么最终将得到一个非矩形的虚拟屏幕

考虑上述链接文档中的图像:

如果我编写以下代码使我的窗口填充整个虚拟屏幕(或者,实际上,它将是虚拟屏幕的工作区域,这是虚拟屏幕中尚未被任务栏和其他停靠窗口填充的区域,即应用程序窗口可用的区域):

我最终会发现我的窗口的大部分是不可见的,因为它们位于虚拟屏幕上没有显示在显示器上的区域。所以,尽管这在你的情况下可能有效,你只有两个监视器,但它不可能在其他人的计算机上工作。看不见的窗口是非常糟糕的用户体验

如果用户希望调整窗口大小以填充整个虚拟屏幕,则可以通过内置在窗口边框中的标准调整功能来实现。有一些以用户为中心的实用程序可以帮助管理多监视器系统上的窗口,但是应用程序程序员不应该对布局进行假设

用无边界窗口填充整个虚拟屏幕仅适用于屏幕保护程序和其他特效,其中窗口的某些部分可能不可见并不重要。

根据定义,“最大化”意味着填充单个显示器。如果在多显示器桌面上最大化窗口,它将填充包含窗口大部分区域的显示器。(唯一不同的方法是,如果你有一个视频卡/驱动程序,将你所有的显示器组合成一个巨大的显示器,这样操作系统就不会看到单独的显示器。)

一般来说,没有办法让一个窗口填满所有监视器。原因是虚拟屏幕可能不是一个完美的矩形。是由连接到系统的所有监控器的并集创建的矩形。如果这些显示器的大小或形状不同,或者排列方式不寻常,那么最终将得到一个非矩形的虚拟屏幕

考虑上述链接文档中的图像:

如果我编写以下代码使我的窗口填充整个虚拟屏幕(或者,实际上,它将是虚拟屏幕的工作区域,这是虚拟屏幕中尚未被任务栏和其他停靠窗口填充的区域,即应用程序窗口可用的区域):

我最终会发现我的窗口的大部分是不可见的,因为它们位于虚拟屏幕上没有显示在显示器上的区域。因此,尽管这在您的情况下可能会起作用,您只有两个显示器,但在其他人的计算机上不太可能起作用。看不见的窗口是非常糟糕的用户体验

如果用户希望调整窗口大小以填充整个虚拟屏幕,则可以通过内置在窗口边框中的标准调整功能来实现。有一些以用户为中心的实用程序可以帮助管理多监视器系统上的窗口,但是应用程序程序员不应该对布局进行假设


用无边界窗口填充整个虚拟屏幕仅适用于屏幕保护程序和其他特效,其中窗口的某些部分可能不可见并不重要。

请提供您用来帮助他人回答问题的代码片段。您可以将其他监视器设置为克隆主屏幕,但如果他们不这样做,那么你就不能这样做。您的显示器可能位置不同,或者很容易具有不同的分辨率,等等,因此这样做没有意义。你很容易就会得到一些看不见的用户界面,而这些界面是不会显示的。回答:甚至不要尝试。请提供您用来帮助他人回答您问题的代码片段。您可以将其他监视器设置为克隆主屏幕,但如果它们不克隆,则无法执行此操作。您的显示器可能位置不同,或者很容易具有不同的分辨率,等等,因此这样做没有意义。你很容易就会得到一些看不见的用户界面,而这些界面是不会显示的。答:甚至不要尝试。它说非静态字段、方法或属性屏幕需要对象引用。WorkingArea'Hmm是的。不知道你为什么要关注答案中明确标记为“不工作”的部分。它说非静态字段、方法或属性屏幕需要对象引用。工作区域是的。不知道你为什么要把注意力集中在答案中明确标记为“不起作用”的那一部分。
Rectangle rcScreen = SystemInformation.VirtualScreen;

this.Location = New Point(rcScreen.Left, rcScreen.Top);
this.Size     = New Size(rcScreen.Width, rcScreen.Height);