在更改控件的大小后,我正在重置OnLayout处理程序中从Panel派生的Control中的Form的大小。
panel->ClientSize = size;
this->Parent->ClientSize =
System::Drawing::Size(
this->Parent->ClientSize.Width,
this->Parent->ClientSize.Height-difference);
使用调试器逐步执行代码表明,在更改Form的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)我在这里做错了吗?
答案 0 :(得分:1)
我会检查控件如何锚定到它的父级。