C# Winform主控件太大

C# Winform主控件太大,c#,winforms,C#,Winforms,我正在开发一个Winform应用程序,它应该占据整个屏幕,目标设备的分辨率为1920x1080。 主控制窗口定义如下: MaximumSize 1920, 1080 Size 1920, 1080 MinimumSize 1918, 1078 StartPosition CenterScreen 为了填充屏幕,我在加载方法中添加了以下内容: this.TopMost = true; this.FormBorderStyle = FormBorderStyle.None; this.Win

我正在开发一个Winform应用程序,它应该占据整个屏幕,目标设备的分辨率为1920x1080。 主控制窗口定义如下:

MaximumSize 1920, 1080
Size 1920, 1080
MinimumSize 1918, 1078
StartPosition CenterScreen
为了填充屏幕,我在加载方法中添加了以下内容:

 this.TopMost = true;
 this.FormBorderStyle = FormBorderStyle.None;
 this.WindowState = FormWindowState.Maximized;
 this.Activate();
当我运行应用程序时,控制窗口应该从左上角开始,但是表单最右边的第五个和最下面的第五个(大约)窗口不在屏幕上。应出现在截止区域中的控件位于适当位置(例如,位置1712551处的标签,应位于1920x1080屏幕的边界内)。
有人能解释一下吗?如果我知道发生这种情况的原因,我相信解决方案是显而易见的。

您的Windows安装可能实际上正在扩展表单。这可以通过使用DPI设置(1/5的截止值听起来像是125%的DPI设置)或Windows 10进行自我调整来实现


最好的办法是不要依赖屏幕测量值来判断是否正确。相反,尽量使用能够自动调整大小的面板,如
TableLayoutPanel
等。这样,您就不需要继续计算,相反,框架将为您完成计算。

您的Windows安装可能实际上是在扩展表单。这可以通过使用DPI设置(1/5的截止值听起来像是125%的DPI设置)或Windows 10进行自我调整来实现

最好的办法是不要依赖屏幕测量值来判断是否正确。相反,尽量使用能够自动调整大小的面板,如
TableLayoutPanel
等。这样,您就不需要继续计算,相反,框架将为您完成这项工作

我在加载方法中添加了以下内容

使用加载事件处理程序是个问题。您正在更改窗口创建后的布局度量。通过给窗口一个负的位置和一个比屏幕大两倍边框宽度的大小,窗口被最大化。这样边界就不可见了

但是您的代码更改了FormBorderStyle,现在位置和大小不再正确。因为窗口不再有边框。因此窗口太大,部分客户端区域不在屏幕上

必须将FormBorderStyle指定移动到窗体的构造函数中,以便使用正确的边框创建窗口。使用设计器设置属性是最简单的

我在加载方法中添加了以下内容

使用加载事件处理程序是个问题。您正在更改窗口创建后的布局度量。通过给窗口一个负的位置和一个比屏幕大两倍边框宽度的大小,窗口被最大化。这样边界就不可见了

但是您的代码更改了FormBorderStyle,现在位置和大小不再正确。因为窗口不再有边框。因此窗口太大,部分客户端区域不在屏幕上


必须将FormBorderStyle指定移动到窗体的构造函数中,以便使用正确的边框创建窗口。使用designer设置属性是最简单的。

更具体地说,在我的lenovo/Windows8笔记本电脑中,在“控制面板\外观和个性化设置\显示”中有一个设置,带有一个滑动条,可以“更改所有项目的大小”。以防任何人需要知道。更具体地说,在我的lenovo/Windows8笔记本电脑中,控制面板\外观和个性化设置\显示中有一个设置,带有一个滑动条,可以“更改所有项目的大小”。以防有人需要知道。