gpt4 book ai didi

c# - 在调整父级大小时调整子窗体控件的大小

转载 作者:太空宇宙 更新时间:2023-11-03 11:38:35 24 4
gpt4 key购买 nike

我正在尝试找到一种简单的方法来根据父窗体的大小调整子窗体的大小。即子窗体从父窗体 (FixedToolWindow) 中弹出。

目前,为了做到这一点,我通过在我的表单子(monad)类中设置 OnParentResize 事件来实现这一点。即

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));

}
}

行 this.Scale(new SizeF((float)dXFactor, (float)dYFactor));缩放我的子窗体中的所有控件。

当我使用它时,我假设每当父窗体调整大小时,我的子窗体也会这样做。显然我在这里遇到了一个问题,子窗体中的所有控件都固定在左上角。

  1. 最初,我的子窗体中的所有控件都是正常大小。

  2. 调整父表单的大小以使其变小,子表单也缩小到相同的比例。

  3. 现在我将父表单的大小增加回其原始大小。子窗体上控件的大小现在以更高的比例增加。而且控件看起来也不合适。

谁能针对这种情况提出更好的方法。

干杯

最佳答案

将 Parent From isMdiContainer 更改为 true,将 childform 边框样式更改为 none,然后

在父表单中,在您想要的地方编辑这样的代码。

 foreach (var mdiChild in MdiChildren)
mdiChild.Close();
var childobj= new childform {MdiParent = this, Dock = DockStyle.Fill};
childobj.Show();

通过 anchor 属性编辑控件。

希望对您有所帮助。

关于c# - 在调整父级大小时调整子窗体控件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5473253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com