2010-06-29 6 views
1

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

this.label1.Size = new Size(); 

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

+0

В чем проблема с характеристиками якоря и док-станции? Это стандартный способ настройки макетов в Windows Forms. –

+0

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

+0

Вы вручную рисуете прямоугольник? Вы можете использовать элемент управления Panel с его набором границ и поместить в него свой ярлык. Вы можете использовать стандартные свойства макета Anchor/Dock, чтобы они автоматически меняли форму. –

ответ

1

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

+0

Я не могу. Это не удовлетворяет мои потребности. Я должен его жестко закодировать. – ghd

1

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

Вы также можете воспользоваться методом в событии изменения размера.

0

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

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

+0

Я не могу использовать его. Я должен жестко закодировать свой код в соответствии с моими потребностями.Якорь и док не служат цели – ghd

0

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

0

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

this.SizeChanged += new EventHandler(Form1_SizeChanged); 

затем в методе обработчика envent, необходимо организовать 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) 
} 

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

+1

или просто устанавливают '.AutoSize = false;' на ярлыке ... – Pondidum

+0

@Pondidum: спасибо, я не знал, что трюк :) – digEmAll

+0

размер метки может быть изменен .. путем изменения Размер шрифта ! label1.Font = новый шрифт («Tahoma», 24); – Sunny

Смежные вопросы