Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms 当子窗体在代码中调整大小时,如何自动调整父窗体的大小?_Winforms - Fatal编程技术网

Winforms 当子窗体在代码中调整大小时,如何自动调整父窗体的大小?

Winforms 当子窗体在代码中调整大小时,如何自动调整父窗体的大小?,winforms,Winforms,在代码中调整子窗体的大小时,如何使父窗体自动调整大小以包装子窗体?我已将父窗体的autosize属性设置为true。更改大小后,我将其命名为.MdiParent.PerformLayout()。我不想手动调整父窗体的大小。MDI父窗体的控件集合中有一个名为MdiClient的隐藏控件。您可以使用此选项来帮助确定任何固定面板或ToolStrip占用的空间大小,然后相应地调整父窗体的工作区大小: MdiClient mc = this.Controls.OfType<MdiClient>

在代码中调整子窗体的大小时,如何使父窗体自动调整大小以包装子窗体?我已将父窗体的autosize属性设置为true。更改大小后,我将其命名为.MdiParent.PerformLayout()。我不想手动调整父窗体的大小。

MDI父窗体的控件集合中有一个名为MdiClient的隐藏控件。您可以使用此选项来帮助确定任何固定面板或ToolStrip占用的空间大小,然后相应地调整父窗体的工作区大小:

MdiClient mc = this.Controls.OfType<MdiClient>().First();
int otherHeight = this.ClientSize.Height - mc.ClientSize.Height;
this.ClientSize = new Size(this.ClientSize.Width,
                           this.ActiveMdiChild.Height + otherHeight);
MdiClient mc=this.Controls.OfType().First();
int otherHeight=this.ClientSize.Height-mc.ClientSize.Height;
this.ClientSize=新大小(this.ClientSize.Width,
this.ActiveMdiChild.Height+otherHeight);

在MDI环境中,这是如何工作的?如果子窗体与边界重叠,MDI父窗体设计为仅提供滚动条。调整父窗体的大小并不被认为是很好的UI—这通常是一种不和谐的体验。我试图调整子窗体的大小以显示更多内容,但它没有调整大小,我假设父窗体正在约束它。为什么不和谐?用户希望查看所有内容,而不是调整表单大小以查看隐藏内容。但是MDI子表单是MDI区域内的浮动表单-这就是为什么您尝试执行的操作没有意义。我想确认一下,这是MDI应用程序吗?或者这些子“表单”真的只是子控件吗?我想我们需要更多地了解您的父窗体。是的,子窗体在父窗体中。mdi应用程序在启动时没有最大化,但子窗体需要足够大以显示所有控件和网格。父窗体不知道它需要多大,因此子窗体会调整其大小。它没有,因为它不能比父窗体大。父窗体需要和子窗体一样大。子窗体正在控制mdi应用程序的大小。就像在网页中,有一个div,内容控制div的大小。如果没有固定的宽度和高度,div将增长以显示所有内容。