Я изменяю размер формы в элементе управления, полученном из Panel в обработчике 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) Я здесь что-то не так делаю?