2010-11-22 42 views

回答

56

使用DockAnchor属性。 Here是一篇很好的文章。请注意,这些将在最大化/最小化时处理更改。如果屏幕分辨率发生变化,则会有所不同,但它会沿着相同的想法。

9
float widthRatio = Screen.PrimaryScreen.Bounds.Width/1280; 
float heightRatio = Screen.PrimaryScreen.Bounds.Height/800f; 
SizeF scale = new SizeF(widthRatio, heightRatio); 
this.Scale(scale); 
foreach (Control control in this.Controls) 
{ 
control.Font = new Font("Verdana", control.Font.SizeInPoints * heightRatio * widthRatio); 
} 
+0

感谢,但接受的答案是比这 – 2012-09-16 09:20:32

+0

@AfnanBashir方式也许更优雅,但是这一次为您节省大量时间,如果你已经有了吨控件的Windows窗体。 +1 – 2015-10-12 19:39:15

+0

我应该在哪里放置这段代码? – Sana 2015-11-16 05:49:25

-1

在页面加载添加此代码对所有的控制做或添加在容器

int x; 
Point pt = new Point(); 
x = Screen.PrimaryScreen.WorkingArea.Width - 1024; 
x = x/2; 
pt.Y = groupBox1.Location.Y + 50; 
pt.X = groupBox1.Location.X + x; 
groupBox1.Location = pt; 
0
在窗体加载事件

所有控制添加这行这些以

this.WindowState = FormWindowState.Maximized; 
14

使用组合得到想要的结果:

  1. 设置Anchor属性为None,控件不会调整大小,它们只会改变它们的位置。

  2. Anchor属性设置为Top + Bottom + Left + Right,控件将调整大小,但不会更改其位置。

  3. 将表格的Minimum Size设置为适当的值。

  4. 设置Dock属性。

  5. 使用Form Resize事件改变任何你想要的

我不知道尺寸(标签,文本框,组合框等)如何字体将受到影响(1) - (4)但可以在(5)中进行控制。

-1
private void MainForm_Load(object sender, EventArgs e) 
    { 
     this.Size = Screen.PrimaryScreen.WorkingArea.Size 
    } 
-1
this.WindowState = FormWindowState.Maximized;