答案 0 :(得分:6)
设计时间:
在我的VisualStudio2010中,我将这2个按钮水平和垂直居中:
它位于工具栏“布局”中。如果不是,您可以通过单击右侧的小按钮添加它们。它也在格式菜单中。
以运行时为中心:关闭所有锚定。
注意:这将使控件保持在相对位置,只要它不会改变它的大小。如果确实如此,就像自动调整Labels
一样,您必须编写Resize
事件的代码。示例是here
答案 1 :(得分:0)
对于尺寸可能有所变化的控件,您需要捕获 Resize事件。
在我的情况下,我在另一个代表工作空间的面板中有一个代表页面的面板。工作区设置为自动滚动。在这种情况下,重要的是控件仅在小于容器时居中。
每当表单更改大小或时,我都会调用此函数:
private void resetPagePos()
{
int wWS = pnlWorkspace.Width;
int hWS = pnlWorkspace.Height;
int wPage = pnlPage.Width;
int hPage = pnlPage.Height;
pnlPage.Location = new Point(Math.Max(0, (wWS - wPage) / 2), pnlPage.Top = Math.Max(0, (hWS - hPage) / 2));
}
使用 Math.Max(0,...)可确保如果该项目不合适,并且滚动条被激活,则我们的页面可以正确滚动。如果将“左”或“上”设置为负数,则会产生不希望有的副作用。