use*_*741 131 .net c# winforms center-align
我试图将固定大小的控件集中在一个表单中.
出于兴趣,有没有非愚蠢的方式这样做?我真正想要的是类似于text-align css属性的东西.
目前,我正在将周围表单的padding属性设置为合适的大小,并将控件的Dock属性设置为fill.
spl*_*tne 242
你可以通过使用锚来实现这一点.或者更确切地说是不使用它们.
默认情况下,控件锚定在窗体的左上角,这意味着当窗体大小发生更改时,它们与窗体左上角的距离将保持不变.如果将控件锚更改为左下角,则控件将在窗体调整时保持与窗体底部和左侧相同的距离.
在调整大小时,关闭方向上的锚点将使控件在该方向上居中.
注意: 通过VS2015中的属性窗口关闭锚定可能需要输入None,None(而不是默认的Top,Left)
Mit*_*eat 109
myControl.Left = (this.ClientSize.Width - myControl.Width) / 2 ;
myControl.Top = (this.ClientSize.Height - myControl.Height) / 2;
Run Code Online (Sandbox Code Playgroud)
Rob*_*ean 44
由于您没有说明表单是否可以调整大小,如果您不关心调整大小(如果您确实关心,请使用Mitch Wheats解决方案),这是一种简单的方法:
选择控件 - >格式(菜单选项) - >窗口中心 - >水平或垂直
小智 8
我找到了一个很好的方法,它可以使用多个控件.添加一个包含3列的TableLayout.使中心列为绝对大小(无论您需要多大的空间).将两个外部列设置为100%.将面板添加到中间列并添加所需的任何控件并将它们放在所需的位置.该中心面板现在将保持在您的表单中心.
另外,如果要将其与另一个控件的中心对齐:
//The "ctrlParent" is the one on which you want to align "ctrlToCenter".
//"ctrlParent" can be your "form name" or any other control such as "grid name" and etc.
ctrlToCenter.Parent = ctrlParent;
ctrlToCenter.Left = (ctrlToCenter.Parent.Width - ctrlToCenter.Width) / 2;
ctrlToCenter.Top = (ctrlToCenter.Parent.Height - ctrlToCenter.Height) / 2;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
167284 次 |
最近记录: |