Как сделать форматирование текста в C # для настройки текста в каком-то элементе управления - PullRequest
1 голос
/ 25 июня 2010

Я создал пользовательский элемент управления на winform, где я хочу отображать некоторый текст на элементе управления Label во время выполнения.Здесь я использовал textFormatFlag в качестве WordBreak, а затем отображает его в следующей строке.Размер этикетки фиксирован по ширине, а переменная по высоте.Теперь проблема заключается в том, как разорвать строку, если между ними нет пробела, то есть нет присутствия WordBreak в строке.Я не хочу делать расчеты по размеру шрифта и соответственно изменять строку.Это что-то скрытое в .net, которое может сделать эту работу для меня.

    sizeCategory = TextRenderer.MeasureText(Source["Parent_Name"].ToString()
                  , lbldbCategory.Font
                  , sizeCategory
                  , TextFormatFlags.WordBreak);

Рассматривайте линии как границу моего ярлыка.ширина высота.Высота является переменной.Рассмотрим это, например.

Моя текстовая строка

"salkdjasldjkslakdjlsakjdlsakjdkajhk sdjahksajd" //see word break between the string
-----------------------------------------------|
salkdjasldjkslakdjlsakjdlsakjdkajhk            |
sdjahksajd                                     |
-----------------------------------------------|

То, что я сделал и сейчас получаю, это:

из-за переноса слова

-----------------------------------------------|
salkdjasldjkslakdjlsakjdlsakjd                 |
kajhksdjahksajdh                               | 
-----------------------------------------------|

То, что происходит, , когда в строке нет пробела, то есть без переноса слова

-----------------------------------------------|
salkdjasldjkslakdjlsakjdlsakjdkajhksdjahksajdhasdasdasdsadasd|
-----------------------------------------------|

Что я хочу, это

-----------------------------------------------|
salkdjasldjkslakdjlsakjdlsakjdkajhksdjahksajdha|
sdasdasdsadasd                                 |
-----------------------------------------------|

1 Ответ

2 голосов
/ 25 июня 2010

Поскольку вы используете элемент управления меткой, оставьте для AutoSize значение true и установите для свойства MaximumSize что-то вроде 150, 0.

Просто протестируйте его.Это работает.

...