gpt4 book ai didi

.net - 设置 Forms ClientSize 会更改控件的位置

转载 作者:行者123 更新时间:2023-11-28 08:22:12 26 4
gpt4 key购买 nike

在更改控件的大小后,我正在重置从 OnLayout 处理程序中的面板派生的控件中的表单大小。

panel->ClientSize = size;
this->Parent->ClientSize =
System::Drawing::Size(
this->Parent->ClientSize.Width,
this->Parent->ClientSize.Height-difference);

使用调试器单步执行代码表明,当窗体的 ClientSize 发生变化时,位置也会发生变化。 面板未锚定到表单。

我遇到的问题是这会导致控件位置发生变化。

>>> FormPanel::layoutPanel - {X=604,Y=0}{Width=766, Height=250}
FormPanel::layoutPanel Height set - {X=604,Y=0}{Width=766, Height=217}
FormPanel - OnSizeChanged:{X=604,Y=0}{Width=766, Height=217}
FormPanel - OnLocationChanged:{X=604,Y=-17}{Width=766, Height=217}
FormPanel - OnMove:{X=604,Y=-17}{Width=766, Height=217}
Setting Form1->ClientSize = {Width=1370, Height=217}
<<< FormPanel::layoutPanel - {X=604,Y=-17}{Width=766, Height=217}

我收到两个事件,控件已移动到 Y = -17。

我的问题是:

1) OnLocationChanged 和 OnMove 有什么区别?

2) 为什么移动了?

3) 我在这里做错了什么吗?

最佳答案

我会检查控件是如何锚定到它的父级的。

关于.net - 设置 Forms ClientSize 会更改控件的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5383109/

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