2012-10-19 49 views
10

当窗口调整大小时,如何将窗口中的对象(按钮,标签等)保持在中心位置?当窗口在C中调整大小时如何保持对象到位#

目前,我在Windows窗体中有3个按钮。当我最大化窗口时,按钮将停留在窗口的左上部分。我希望他们像窗户未被最大化时一样处于中心位置。

任何帮助?

+0

如果不需要,您可以禁用'最大化'选项... :) –

回答

21

应设置对象的锚属性没有

这将保持在中间。

+1

做到了。谢谢 ! :) –

0

如果您使用的是Visual Studio的可视化设计器(并且您没有理由不这样做),那么您试图管理它们如何放置在窗体内的控件的属性是“锚定”。 默认情况下,当您创建新控件时,它将设置为“左上角”,这意味着它们将保持在表单左上角的固定位置。你可以改变它以将它们锚定到任何东西上。

您还可以通过重写窗体的Resize方法来禁用锚点并控制它们的位置。

1

正确设置控件的Anchor属性。默认情况下,您的控件的锚定为Top,Left。如果清除此属性(实质上锚定为无),则按钮将保持居中。

(它可能看起来像要锚定到的四条边,但实际上这是什么会做的是调整你的按钮,填写表格!)

+0

我做到了。谢谢。但它不会调整按钮的大小。当我最大化窗口时,按钮的大小与以前相同。有没有任何方法的按钮也增加他们的大小相同的比例? –

+0

如果您将'Anchor'设置为'Top,Left,Bottom,Right',那么当您调整窗体大小时,按钮将调整大小,但它不会与窗体保持相同*比例*(即,它将调整大小与表单相同数量的像素)。如果您想将按钮的大小保持为表单大小的固定百分比,则需要手动编码。 –

4

为了使您的布局固定,并在中间做:

  1. 在您的Form上添加TableLayoutPanel
  2. 将其设置为Dock财产至Fill
  3. 创建3行和3列。
  4. 编辑行和列 - 为第一列和最后一列以及行设置50%。
  5. 设置中间行和列的固定大小。
  6. Panel或其他任何您喜欢的东西放在第2行和第2列。它将永远在中间。
相关问题