Есть форма, на ней лежит Label. Текст, помещаемый в Label, может состоять из пары предложений, а может содержать в себе многострочный список. Форма представляет собой всплывающее окошко возле трея, небольшого размера, это некие уведомления для юзера. Соответственно может возникнуть ситуация, когда текст в метке не помещается на форме. Отмечу, что текст находится в контейнере TableLayout. Как сделать так, чтобы размер формы, а именно высота, зависела от текста в метке, а именно признака, что весь текст виден на экране?
Можно ли сделать что-то вроде этого? Считаем размер формы до её показа:
while(метка показана не вся)
{
this.height++;
}
Использовать скролл в этой форме считаю некрасивым решением, лучше именно увеличить высоту формы.
что-то вроде такого:
lbl.WordWrap = true;
lbl.Text = "asldkfj\r\nasldkfj\r\nasldkfj\r\nasldkfj\r\nasldkfj\r\nasldkfj\r\nasldkfj\r\nasldkfj\r\nasldkfj\r\nasldkfj\r\nasldkfj\r\nasldkfj\r\nasldkfj\r\nasdf"
MainForm.Height = lbl.Height + 100; //оставляемь 100 пикселей на кнопки
Я не знаю, как измерить сам размер, но вполне возможно найти зависимость ширины от количества символов. Допустим, ваш label - это label1:
void label1_TextChanged(object sender, EventArgs e){
if(label1.Text.Length > какая-то величина){
this.height += 15; //Изменение может быть больше в зависимости от размера шрифта
}
}
Кому интересно, решил проблему так:
// подгоняем высоту формы
// требуемая высота для метки
int pref_height = fTray.lMessage.GetPreferredSize(fTray.lMessage.Size).Height;
int cur_height = fTray.lMessage.Height;
int diff_height = pref_height - cur_height;
if (diff_height>0)
{
fTray.Height = fTray.Height + diff_height;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть TreeView, у него задано свойство ScrollViewerVerticalScrollBarVisibility="Auto"
При попытке Add-Migration InitialMigration падает исключение SystemDllNotFoundException, не может найти sqlite3
Установлена 13 студия максимальная, хочу добавить в проект ссылку на пакет MicrosoftOffice