Количество строк для текстового поля
Имеется текстовое поле, текст внутри которого не изменяется (в принципе, это может быть и метка (label) - не принципиально). Сам по себе текст может быть достаточно длинным и не умещаться в одну строку - свойство Multiline устанавливаем в true. Так вот, внимание! Вопрос: как проще всего определить, сколько строк понадобится для отображения текста, и, тем самым, выяснить необходимую высоту элемента управления?
Реализовал как (textBox.PreferredSize.Width + textBox.Size.Width - 1) / textBox.Size.Width. Однако, что-то мне подсказывает, что это слижком уж черезжо..ное решение. Можно ли как-нибудь проще?
Я сам задавал подобный вопрос недавно, решения так и не нашел (хотя и не искал особо)
Цитата: Der Meister
Вопрос: как проще всего определить, сколько строк понадобится для отображения текста, и, тем самым, выяснить необходимую высоту элемента управления?
Font.MeasureText и Font.MeasureString позволяют получить размер, который займет текст.
Цитата: hardcase
Font.MeasureText и Font.MeasureString позволяют получить размер, который займет текст.
У System.Drawing.Font нет таких свойств. С чем перепутали?
Цитата: Camarada
У System.Drawing.Font нет таких свойств. С чем перепутали?
Точно. Приношу извинения. Это относится к DirectX-овому шрифту.
Для измерения текста со шрифтом GDI+ нужно пользоваться Graphics.MeasureString.
Цитата: hardcase
Для измерения текста со шрифтом GDI+ нужно пользоваться Graphics.MeasureString.
Воо!!! Прямо то, что доктор прописал.
Спасибо!
Ага, спасибо