Как динамически установить текст поля метки в C # 4.0 с помощью функции переноса слов? - PullRequest
3 голосов
/ 27 апреля 2011

В моем приложении на основе Windows Forms на C # 4.0 у меня есть одно поле «Метка». Теперь я хочу динамически установить текст поля «Метка». Мой текст выглядит как абзац. Так что, когда я отображал свой текст, только частьтекст отображается в форме одной строкой. Итак, я хочу переносить текст на следующую строку, когда он достигает правого конца формы ...

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

Ответы [ 3 ]

5 голосов
/ 27 апреля 2011

Все, что вам нужно сделать, это установить для свойства AutoSize элемента управления меткой значение False.Это можно сделать либо в конструкторе через окно «Свойства», либо с помощью кода: myLabel.AutoSize = false

. Он включается по умолчанию, когда вы добавляете элемент управления в конструктор (хотя значение по умолчанию равно false при создании экземпляра).контроль через код).При включенном этом свойстве элемент управления пытается автоматически настроить width (а не его высоту!) Для отображения всего его содержимого.Это не так хорошо работает с несколькими абзацами, так как невозможно разместить все содержимое одной строкой на экране.

Отключив это свойство, вы можете вручную изменить размер элемента управления, чтобы вместить текст.

Все остальное обрабатывается автоматически.Текст автоматически переносится на новую строку, когда он достигает края границы элемента управления.Например:

The asker's original question, displayed on a label control with AutoSize = false.

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

3 голосов
/ 27 апреля 2011

Убедитесь, что вы установили label.AutoSize = true; и установили фиксированное значение для вашей метки.Он автоматически обернется для вас:

label.MaximumSize = new Size(100, 0);

Это самое простое из известных мне решенийТолько что проверил и все работает.

1 голос
/ 27 апреля 2011

В свойствах метки отмените свойство AutoSize (установлено значение «Ложь»), затем прикрепите метку, как требуется.Это должно иметь эффект, который вы ищете.

...