Переменная высота Label при фиксированной ширине
От: Sargay  
Дата: 03.06.04 09:01
Оценка:
Такая задача — уже голову сломал

Есть label на форме. В этом label помещен очень длинный ОДНОСТРОЧНЫЙ текст. Так как этот текст не помещается по ширине в этот label, то он переносится по словам на следующие строчки. При это приходится подгонять высоту label, что бы все перенесенные строчки ровно помещались. Если сделать высоту большой, то снизу на label останется много пустого места. Если сделать высоту маленькой, то перенесенные строчки не помесястся снизу и не будут отображаться.
Хочется при фиксированной ширине label автоматически подогнать его высоту так, что бы текст как раз помещался. Как?
Re: Переменная высота Label при фиксированной ширине
От: PVitaliy Украина  
Дата: 03.06.04 11:29
Оценка:
Здравствуйте, Sargay, Вы писали:

S>Такая задача — уже голову сломал


S>Есть label на форме. В этом label помещен очень длинный ОДНОСТРОЧНЫЙ текст. Так как этот текст не помещается по ширине в этот label, то он переносится по словам на следующие строчки. При это приходится подгонять высоту label, что бы все перенесенные строчки ровно помещались. Если сделать высоту большой, то снизу на label останется много пустого места. Если сделать высоту маленькой, то перенесенные строчки не помесястся снизу и не будут отображаться.

S>Хочется при фиксированной ширине label автоматически подогнать его высоту так, что бы текст как раз помещался. Как?

У класса Graphics есть метод MeasureString, передаеш ему строку текста, шрифт лабела, и его ширину, он возвратит высоту. Сам Graphics можно получить через Graphics.FromHwnd(YourLabel.Handle)
Re: Переменная высота Label при фиксированной ширине
От: Ael США  
Дата: 03.06.04 11:32
Оценка:
Здравствуйте, Sargay, Вы писали:

S>Такая задача — уже голову сломал


S>Есть label на форме. В этом label помещен очень длинный ОДНОСТРОЧНЫЙ текст. Так как этот текст не помещается по ширине в этот label, то он переносится по словам на следующие строчки. При это приходится подгонять высоту label, что бы все перенесенные строчки ровно помещались. Если сделать высоту большой, то снизу на label останется много пустого места. Если сделать высоту маленькой, то перенесенные строчки не помесястся снизу и не будут отображаться.

S>Хочется при фиксированной ширине label автоматически подогнать его высоту так, что бы текст как раз помещался. Как?

А почему не использовать Graphics.MeasureString().
Среди перегруженных вариантов есть даже позволяющий определить кол-во вмещенных символов и заполненных строчек. Обрабатывать событие TextChanged для Label и изменять соответственно его размеры.
Re[2]: Переменная высота Label при фиксированной ширине
От: mihailik Украина  
Дата: 07.06.04 07:15
Оценка:
PV>Сам Graphics можно получить через Graphics.FromHwnd(YourLabel.Handle)

Ну уж нет!

Чтобы получить Graphics от контрола, нужно вызвать Control.CreateGraphics(). А ещё лучше создать один скрытый Bitmap и взять от него Graphics.FromImage один раз при инициализации.
... << Rsdn@Home 1.1.4 beta 1 >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.