Windows 窗体 - 面板中的 ChildForm 被放大
Posted
技术标签:
【中文标题】Windows 窗体 - 面板中的 ChildForm 被放大【英文标题】:Windows Forms - ChildForm in panel is zoomed in 【发布时间】:2022-01-07 23:45:56 【问题描述】:所以我有这段代码在面板中显示子窗体:
private Form activeForm = null;
private void openChildForm(Form childForm)
if (activeForm != null)
activeForm.Close();
activeForm = childForm;
childForm.TopLevel = false;
childForm.FormBorderStyle = FormBorderStyle.None;
childForm.Dock = DockStyle.Fill;
panelChildForm.Controls.Add(childForm);
panelChildForm.Tag = childForm;
childForm.BringToFront();
childForm.Show();
labelVersion.BringToFront();
panel和form的尺寸完全一样(form因为有边框有点大,但是无边框的尺寸和panel一模一样)。但是由于某种原因,当我打开它时,它似乎放大了,我无法弄清楚。
【问题讨论】:
这就是您所期望的。表单本身不再决定它的大小,它现在由面板大小固定。如果表单优雅地处理不断变化的窗口大小,那么在停靠在面板中时也将可见。或者可能是您的应用支持 dpiAware,并且表单会相应地重新缩放。 嗯,奇怪的是:我现在开始工作了。我继续将表单的字体更改为 10,然后又改回 8,现在它非常适合。我真的不明白那里发生了什么,但我很高兴我现在可以开始工作了。 啊,这就解释了。字体是一个“环境”属性,如果没有明确设置,那么它使用父字体。换句话说,它使用了 Panel 的字体。如果未设置(通常未设置),则使用面板父级的字体等。这通常是非常可取的,它确保所有控件使用相同的字体。 alrighttttt 然后解释它。感谢您的回答! 【参考方案1】:嗯,奇怪的是:我现在开始工作了。我继续将表单的字体更改为 10,然后又改回 8,现在它非常适合。我真的不明白那里发生了什么,但我很高兴我现在可以开始工作了。
【讨论】:
以上是关于Windows 窗体 - 面板中的 ChildForm 被放大的主要内容,如果未能解决你的问题,请参考以下文章
Windows 窗体应用程序中的 Panel vs GroupBox