C# Winform主控件太大
我正在开发一个Winform应用程序,它应该占据整个屏幕,目标设备的分辨率为1920x1080。 主控制窗口定义如下: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
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笔记本电脑中,控制面板\外观和个性化设置\显示中有一个设置,带有一个滑动条,可以“更改所有项目的大小”。以防有人需要知道。