Как сделать расположение дочерних элементов управления в WinForms относительным? - PullRequest
0 голосов
/ 02 ноября 2010

У меня есть пользовательский элемент управления, полученный из элемента управления, который динамически добавляется в форму. Элемент управления может иметь отрицательные значения в местоположении и по умолчанию закрашивается относительно левого верхнего угла.

Как получить, например, элемент управления с отрицательными координатами и нарисовать относительно правого нижнего угла?

Ответы [ 4 ]

1 голос
/ 02 ноября 2010

Название вопроса и вопрос задают две разные вещи.

Для заголовка: да, вы можете сделать относительное размещение, но вам нужно будет использовать вложенные панели макетов, такие как TableLayoutPanel и FlowLayoutPanel. Они должны быть в состоянии сделать большинство, если не все, то, что вы хотите сделать.

По актуальному вопросу:

  1. Почему?
  2. Нет, вы не можете.
0 голосов
/ 14 ноября 2012

Я создал небольшой класс для управления положением и размером в зависимости от размера контейнера:

http://www.codeproject.com/Tips/492814/Relative-design-components-on-WinForm

0 голосов
/ 02 ноября 2010

Вы можете сделать что-то вроде

Point relativePos = new Point(-10, -10);
control.Anchor = AnchorStyles.Right | AnchorStyles.Bottom;
control.Location = new Point(this.ClientSize.Width - control.Width + relativePos.X, this.ClientSize.Height - control.Height + relativePos.Y);

, где относительное положение - это положение относительно нижнего правого.При изменении размера якорь остается неизменным.

0 голосов
/ 02 ноября 2010

Я не уверен, что вы можете сделать это, используя свойство Location, не делая много дополнительного кодирования. Но (1) вы можете установить его свойство «Якорь» справа и снизу вместо верхнего и левого. Затем, каждый раз, когда вы изменяете размер формы, она будет оставаться в том же месте относительно правого нижнего угла вмещающей панели (форма). Затем (2) можно установить верхний левый угол местоположения на такие значения, чтобы он был вне видимой области ... поэтому Каждый раз, когда размер вашей формы (или панели) изменяется - элемент управления будет находиться вне видимой области.

надеется, что это поможет.

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