как автоматически изменить размер элемента управления при изменении размера формы - PullRequest
1 голос
/ 29 июня 2010

Я рисую прямоугольник на моей форме, и поверх этого у меня есть метка, которую я перетащил.Теперь я хочу изменить размер прямоугольника, который содержит метку, чтобы он автоматически изменялся при изменении размера формы (максимизируется и все).Я попытался использовать

this.label1.Size = new Size();

, но из-за этого моя метка или прямоугольник исчезли из формы.Я не могу видеть это в моей форме сейчас.Свойства Anchor и Dock не служат моей цели.Я должен жестко закодировать это.Нужна помощь в том, как решить эту проблему изменения размера.

Ответы [ 6 ]

1 голос
/ 29 июня 2010

Проверьте свойства Anchor и Dock . Они должны быть в состоянии предоставить вам необходимую вам функциональность.

Вы также можете использовать метод .SetBounds () в событии resize.

1 голос
/ 29 июня 2010

Используйте свойство .Anchor.

0 голосов
/ 04 июля 2010

Попробуйте Форма Scale() Метод . Но для меня это немного странное поведение ...

0 голосов
/ 29 июня 2010

Вы должны обработать событие SizeChanged:

this.SizeChanged += new EventHandler(Form1_SizeChanged);

затем в методе обработчика событий вы должны организовать Size и Location вашего контроля:

void Form1_SizeChanged(object sender, EventArgs e)
{
   myControl.Size = new Size(w,h);  // size of the control
   myControl.Location = new Point(x,y);  //coordinates from the upperleft corner of your control's container (the form in your case)
}

N.B. AFAIK метка не может быть изменена, как вы хотите (вместо расположения в порядке), потому что имеет фиксированный размер. Используйте текстовое поле со свойствами Readonly и Multiline, установленными в true

0 голосов
/ 29 июня 2010

Если Dock и Anchor не годятся, просто установите свойства Width и Height.Создав объект Size по умолчанию и присвоив его своему элементу управления, вы в основном назначаете Width и Height значение 0.

0 голосов
/ 29 июня 2010

Вы можете использовать свойство Dock элемента управления, которое позволяет выровнять его по левому, правому, верхнему или нижнему краю формы, или заполнить всю форму.

Или использовать Anchor свойство, которое позволяет привязывать координаты - например, когда вы установите привязку влево, вправо, сверху, снизу, он изменит размер с помощью формы.

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