设置Forms ClientSize会更改控件的位置
在更改控件的大小后,我在OnLayout处理程序中从Panel派生的控件中重置窗体的大小。
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)我在这里做错了什么?
我会检查控件是如何锚定到它的父项。
链接地址: http://www.djcxy.com/p/58369.html上一篇: Setting a Forms ClientSize changes the Location of the control
下一篇: javascript:find screen resolution when having multiple monitors