我刚刚设计了一个 Windows 窗体应用程序,但是当它在我朋友较小的笔记本电脑上运行时;表单看起来太大了,或者我应该说必须从左到右或从上到下滚动才能访问各种文本框、按钮等。我正在查看这个 SO 答案,它显示了以下代码:
this.WindowState = FormWindowState.Maximized;
我认为这段代码驻留在特定的表单构造函数中?这段代码能解决我所有的问题吗?除非我开始弄乱自己的屏幕分辨率,否则我目前没有较小的笔记本电脑可供测试。
该问题的已接受答案中发布的代码当然需要放入表单构造函数中(InitializeComponents),并且具有最大化的表单当然可以消除很多关于调整大小的问题。无论如何,财产:
Screen.PrimaryScreen.WorkingArea
对于相对于当前屏幕大小的窗体大小和定位非常有用。例如:
this.Width = Screen.PrimaryScreen.WorkingArea.Width / 2;
this.Height = Screen.PrimaryScreen.WorkingArea.Height / 2;
this.Top = (Screen.PrimaryScreen.WorkingArea.Top + Screen.PrimaryScreen.WorkingArea.Height) / 4;
this.Left = (Screen.PrimaryScreen.WorkingArea.Left + Screen.PrimaryScreen.WorkingArea.Width) / 4;
在将 设置WindowState
为最大化之前,您需要您的表单完全可调整大小。
尽可能在 VS 设计器中缩小您的表单,为其每个组件设置 Dock、Anchor 和最小/最大尺寸,尝试在设计器中调整它的大小。重复直到它调整好大小。
Panel
如果上述迭代还不够,您可能需要在 s 中将控件组合在一起以控制它们如何调整大小。
我个人TableLayoutPanel
通过定义行和列,并设置它们的高度和宽度来使用和设计我的表单,根据我希望我的表单的形状,有些带有AutoSize
一些 withPercent
和一些带有size 类型。Absolute
然后我将控件(文本框、标签、组合框)放在 tablelayoutpanel 的单元格内,并将它们设置dock
为Fill
. 而已。
我不确定这是否是这份工作的正确方法,但两年来我一直在做这件事,没有失败。希望它对你也有帮助。