C# 调整子窗体的大小控制调整父窗体的大小
我试图找到一种简单的方法,根据父窗体的大小重新调整子窗体的大小。i、 e子窗体从父窗体(FixedTool窗口)弹出 为了做到这一点,目前我在form child类中通过一个OnParentResize事件来实现这一点。i、 eC# 调整子窗体的大小控制调整父窗体的大小,c#,.net,winforms,.net-2.0,C#,.net,Winforms,.net 2.0,我试图找到一种简单的方法,根据父窗体的大小重新调整子窗体的大小。i、 e子窗体从父窗体(FixedTool窗口)弹出 为了做到这一点,目前我在form child类中通过一个OnParentResize事件来实现这一点。i、 e void OnParentResized(object sender, EventArgs e) { //Resize of the form shall be made only when the form is not min
void OnParentResized(object sender, EventArgs e)
{
//Resize of the form shall be made only when the form is not minimized
if (parent.WindowState != FormWindowState.Minimized)
{
int iWidth = parent.Size.Width;
int iHeight = parent.Size.Height;
double dXFactor = (double)iWidth / (double)this.Width;
double dYFactor = (double)iHeight / (double)this.Height;
this.Scale(new SizeF((float)dXFactor, (float)dYFactor));
}
}
此刻度线(新的SizeF((浮点)dXFactor,(浮点)dYFactor));
缩放我的子窗体中的所有控件
当我使用它时,我假设每当父窗体调整大小时,我的子窗体也会调整大小。显然我在这里遇到了一个问题,子窗体中的所有控件都锚定在左上角
干杯我想你应该使用ClientRectangle的宽度和高度,而不是窗口的宽度和高度。因为客户端矩形比windows矩形小。这是一个初步猜测。将isMdiContainer中的Parent更改为true,将childform边框样式更改为none,然后 在父窗体中,在您想要的地方编辑类似下面的代码
foreach (var mdiChild in MdiChildren)
mdiChild.Close();
var childobj= new childform {MdiParent = this, Dock = DockStyle.Fill};
childobj.Show();
编辑控件以通过定位特性进行定位
希望它能对您有所帮助。您不能锚定您的子控件,使它们在所有方向上都能动态调整大小吗?不,即使我锚定在所有方向TLBR。我看到子窗体上的控件超出了正常大小。您如何订阅OnParentResized事件?在c中没有这样的事件#