В чем разница между границами элемента управления и настройками X,Y, ширины, высоты элемента управления?

Итак, допустим, у меня есть панель на winform, и я хочу, чтобы она отображалась в определенной точке и должна иметь определенную ширину и высоту на winform. Плюс, я хочу сделать это во время выполнения.

Итак, в чем разница и правильный способ перемещения и установки размеров панели?

Сюда:

Panel1.bounds.X:=10;
Panel1.bounds.Y:=10;
Panel1.bounds.width:=100;
Panel1.bounds.height:=103;

Или так:

Panel1.Left := 10;
Panel1.Top := 10;
Panel1.width:=100;
Panel1.height:=103;

Или оба способа должны иметь одинаковый эффект на панели1.

Я пытаюсь выяснить, что на самом деле не так с моей программой... Хотя я задал вопрос, относящийся к моей проблеме, никто даже не пытался ответить или даже не смог оставить комментарий. Итак, я прошу кусочки и вопросы, чтобы понять мою проблему.

1 ответ

Решение

Если вы хотите установить Boundsнужно сделать это с помощью прямоугольника. (Пожалуйста, простите за любые синтаксические ошибки в моих примерах; мой Delphi немного ржавый.)

BoundsRect: Rectangle;
BoundsRect.X = 10;
BoundsRect.Y = 10;
BoundsRect.Width := 100;
BoundsRect.Height := 103;
Panel1.Bounds := BoundsRect;

Как правило, вы будете использовать это, если вы хотите установить или изменить несколько свойств. Если вы просто хотите установить одно или два свойства, вы можете использовать Width, Top, так далее.

Еще одно отличие состоит в том, что каждый раз, когда вы устанавливаете одно из этих свойств (либо Boundsили одно из отдельных свойств), это вызывает много работы за сценой (перемещение и перерисовка окна и т. д.). Настройка Bounds Свойство из прямоугольника будет меньше работать.

Другие вопросы по тегам