在.NET(Winforms)窗体中的控件居中?

我正在尝试将一个固定大小的控件集中在一个表单中。

出于兴趣,是否有一个非愚蠢的做法呢? 我真正想要的是类似于文本alignmentCSS属性。

目前,我将周围窗体的填充属性设置为合适的大小,并将控件的Dock属性设置为填充。

你可以用来达到这个目的。 或者更确切地说, 不使用它们

控件默认锚定在表单的左上方,这意味着当表单的大小将被改变时,它们与表单左上方的距离将保持不变。 如果将控件锚点更改为左下angular,则在调整窗体大小时,控件将保持与表单底部和左侧的距离相同。

在resize的同时,closures方向的锚点将使控件保持居中。

注意:通过VS2015中的属性窗口closures锚定可能需要inputNone,None(而不是默认的Top,Left)

myControl.Left = (this.ClientSize.Width - myControl.Width) / 2 ; myControl.Top = (this.ClientSize.Height - myControl.Height) / 2; 

既然你没有说明表单是否可以resize,如果你不关心resize(如果你照顾的话,请使用米奇小麦解决scheme):

select控制 – >格式(菜单选项) – >在窗口中居中 – >水平或垂直

我发现了一个很好的方法来做到这一点,它将与多个控件一起工作。 添加一个3列的TableLayout。 使中心的列绝对大小(无论你需要多less空间)。 将两个外部列设置为100%。 将面板添加到中心列,并添加所需的任何控件,然后将它们放在您想要的位置。 该中心小组现在将继续以您的表单为中心。

你可以把你想要控制在一个面板中心,并设置左侧和右侧的填充值大于默认值。 只要它们是平等的,而且你的控制权在小组的两边,那么它就会出现在该小组的中心。 然后,您可以根据需要将容器面板锚定到其父项。

它涉及眼球(好吧,我想你可以拿出一个计算器和计算),但只是插入表单上的控制,然后删除任何锚定(锚=无)。

要在其他容器中的面板o中居中button,请执行以下步骤:

  1. 在devise时设定位置
  2. 转到button的属性锚点并将此值设置为跟随图像

在这里输入图像说明

如果父窗口最大化,则在左上方和上方属性。