C #: не удается обновить высоту элемента управления при изменении размера - PullRequest
2 голосов
/ 15 февраля 2011

Я реализовал UserControl с текстом Label. Я хочу отрегулировать высоту элемента управления при изменении его ширины, чтобы весь текст был виден постоянно, как показано на рисунке: sample

Я настроил WinForms Label для вычисления TextBounds метки (необходимый прямоугольник для текста), и я вызываю событие с именем TextBoundsChanged, которое указывает, что размер прямоугольника текста изменился (обратите внимание, что это событие генерируется всегда, пока размер метки изменяется).

Это работает: я получаю событие, затем я обновляю свою высоту элемента управления, но высота элемента управления действительно не изменяется !!

Я подозреваю, что событие TextBoundsChanged возникает при изменении размера UserControl. Размер UserControl также изменяется, поэтому я боюсь, что WinForms игнорирует обновление высоты элемента управления при изменении размера .

Я прав? Кто-то знает, как обойти эту проблему?

Заранее спасибо.


РЕДАКТИРОВАТЬ : пользовательский элемент управления не только показывает текст. Это только упрощенный образец. Таким образом, мой пользовательский элемент управления должен вертикально увеличиваться при уменьшении ширины, чтобы показать весь текст в метке. метка не является пользовательской меткой winforms, потому что она отображает содержимое HTML. Кроме того, я использую .NET1, поэтому свойство word wrap недоступно для меня

Ответы [ 3 ]

2 голосов
/ 15 февраля 2011

Просто установите свойство Dock или Anchor Label в вашем UserControl, и все будет работать как шарм (вы также можете проверить правильное поведение во время разработки, просто изменив размер вашего UserControl). ; -)

0 голосов
/ 15 февраля 2011

"WinForms игнорируют обновление высоты элемента управления при изменении размера"
Вы имеете в виду UserControl?Я сильно сомневаюсь в этом

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

0 голосов
/ 15 февраля 2011

Должно ли это быть UserControl?Требуемое поведение будет довольно простым, если вы прикрепите метку к верхней части формы, отключите автоматический размер и включите перенос слов.

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