C# 如何为所有分辨率居中显示面板

C# 如何为所有分辨率居中显示面板,c#,panel,C#,Panel,我是初学者。我想问一下,我如何才能为所有的决议中心面板。我有一个面板,其中包括其他面板和它的父面板。我试着给设计师添加这些东西 ParentPanel.Location = new Point( this.ClientSize.Width / 2 - ParentPanel.Size.Width / 2, this.ClientSize.Height / 2 - ParentPanel.Size.Height / 2); ParentPanel.Anchor = AnchorStyles.Non

我是初学者。我想问一下,我如何才能为所有的决议中心面板。我有一个面板,其中包括其他面板和它的父面板。我试着给设计师添加这些东西

ParentPanel.Location = new Point(
this.ClientSize.Width / 2 - ParentPanel.Size.Width / 2,
this.ClientSize.Height / 2 - ParentPanel.Size.Height / 2);
ParentPanel.Anchor = AnchorStyles.None;
但它说:找不到名称景观“点”的类型,因此我使用了帮助,它将
新点
更改为
新系统.Drawing.point
,但仍然不起作用:/

我的表单是全屏的,不能调整大小,所以WindowsState是最大化的,StartPosition是中心屏幕


您能帮我一下吗?

您不应该将此代码放在designer中,因为designer的代码是从构造函数调用的,此时表单还不可见


相反,处理
SizeChanged
窗体的
事件(或覆盖
OnSizeChanged
方法),并在那里设置
父面板的位置。

您的数学不太正确。试试这个:

ParentPanel.Location = new Point(
    (this.ClientSize.Width - ParentPanel.Size.Width) / 2,
    (this.ClientSize.Height - ParentPanel.Size.Height) / 2);
ParentPanel.Anchor = AnchorStyles.None;

欢迎来到StackOverflow!请看,其中的共识是“不,他们不应该”。请看这个答案:我忘了说我有一个全屏启动的形式,它不可缩放。WindowsState是maximized,StartPosition是CenterScreen。@Kuri,无论如何-构造函数不是计算最大化窗体宽度的正确位置,因为窗体此时不可见,窗体宽度实际上是您在设计器中设置的值,而不是最大化窗体变为可见时的值。处理
VisibleChanged
或覆盖
受保护的覆盖void OnSizeChanged(EventArgs e)
(因为它将在表单上被调用也变为可见)并将代码放在那里。谢谢,但我仍然会收到错误“找不到命名空间点”我以为我们已经确定了你不应该把这个代码放在设计器文件中?理想情况下,处理表单的加载事件并将代码放入其中(不会出现名称空间错误)。或者,在调用InitializeComponent()之后,在推送时将其放入表单的构造函数中。但我的数学不错,当我尝试您和我的代码时,没有什么不同:)