Установка форм ClientSize меняет расположение элемента управления - PullRequest
0 голосов
/ 21 марта 2011

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

1 Ответ

1 голос
/ 21 марта 2011

Я бы проверил, как элемент управления привязан к его родителю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...