vb.net Я пытаюсь изменить размер элемента управления (label, textbox, richtextbox) так, чтобы это был наименьший квадрат, содержащий заданную строку

#vb.net

#vb.net

Вопрос:

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

Это самое близкое, что я получил до сих пор: загрузите текст во временное расширенное текстовое поле, Rich, с BorderStyle = none Я увеличиваю значение size, width=height=size до Rich .ClientRectangle.Width = Rich .Ширина.

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

Визуальные строки, конечно, не совпадают с Rich.Массив строк.

Есть идеи?

Спасибо.

Комментарии:

1. Что такое «визуальные линии»?

2. Пожалуйста, покажите нам код, который у вас есть, и сообщите нам, что происходит не так или отсутствует в коде. Тогда мы можем помочь это исправить.

3. Что не так с установкой значения auto size в true для элемента управления label?

4. Я использовал термин «визуальные линии» для обозначения линий, которые вы видите при просмотре элемента управления, чтобы подчеркнуть различие между строками, которые вы видите, и массивом строк элемента управления. Каждая строка в массиве строк может быть действительно очень длинной.

5. Установка автоматического размера в true представляет собой проблему, связанную с пониманием того, что текст переполняет емкость метки. Если бы я мог обнаружить, что метка переполнена, или, в случае текстового поля, текст заканчивается многоточием (…), я бы закончил.