|
Подскажите по многострочному listbox
|
|||
---|---|---|---|
#18+
Нашел такой код: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
И он даже работает, но вот lst_MeasureItem отрабатывает только один раз, при старте программы. У меня же размер listbox меняется сплиттером, а высота не пересчитывается, количество строк на item остается тоже. Как это дело допилить чтоб реагировало на изменение размеров listbox? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2020, 18:39 |
|
Подскажите по многострочному listbox
|
|||
---|---|---|---|
#18+
Для начинающих юзеров объясните человеческим езыгом, в чем состоит задача? С чем боретесь? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 11:38 |
|
Подскажите по многострочному listbox
|
|||
---|---|---|---|
#18+
Ролг Хупин, Даже не знаю как подробней... В листбоксе у меня длинный текст. соответственно он не умещается и обрезается - нужно сделать перенос на несколько строк. Что данный код собственно и делает, если подписать эти обработчики на соответствующие события и выставить DrawMode в OwnerDrawVariable. Проблема в том что обработчик измерения вызывается только один раз при старте программы, и если он насчитал что текст будет высотой скажем в три строки, то так и будут три строки, даже если в процессе работы изменить размер листбокса и соответственно количество необходимых строк изменится. Вот и думаю как быть... может нужно всего лишь еще какой нить параметр поменять... Или может подписаться на событие ресайза и в цикле перебирать, пересчитывать высоту. Но тут загвоздка: событие ресайза не предлагает параметра MeasureItemEventArgs , а сами item-ы имеют тип object и я не знаю как докопаться до Graphics.MeasureString чтоб собственно пересчитать высоту... и до ItemHeight чтоб ее записать... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 14:50 |
|
Подскажите по многострочному listbox
|
|||
---|---|---|---|
#18+
Вам не кажется, что, может, как говорил классик - в консерватории что-то изменить? "В листбоксе у меня длинный текст. соответственно он не умещается и обрезается - нужно сделать перенос на несколько строк." Зачем эти финты? скрол же есть, да и х.с.н, а? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 15:46 |
|
Подскажите по многострочному listbox
|
|||
---|---|---|---|
#18+
Ролг Хупин, ) не, не прокатит - этот текст по сути что-то вроде иконки, кнопки, кликнув на него в остальные части программы подгружаются данные относящиеся к этому тексту, то есть он должен быть целиком виден сразу, чтоб не перепутать, ибо тексты похожи. Если простого решения не найдется попробую этот листбокс динамически пересоздавать при изменении размера... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 16:08 |
|
Подскажите по многострочному listbox
|
|||
---|---|---|---|
#18+
ElementHost + UserControl на WPF. В wpf'ных ListBox/ListView такое делается вообще без проблем. Вот здесь обсуждалось: https://www.sql.ru/forum/1145702/spisok-kak-v-autluke задача была даже несколько более сложной. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 17:32 |
|
Подскажите по многострочному listbox
|
|||
---|---|---|---|
#18+
iskatelsql Ролг Хупин, ) не, не прокатит - этот текст по сути что-то вроде иконки, кнопки, кликнув на него в остальные части программы подгружаются данные относящиеся к этому тексту, то есть он должен быть целиком виден сразу, чтоб не перепутать, ибо тексты похожи. Если простого решения не найдется попробую этот листбокс динамически пересоздавать при изменении размера... Возьмите старый добрый контрол и насилуйте его, по-моему он умеет туеву хучу всего http://objectlistview.sourceforge.net/cs/index.html ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 18:16 |
|
|
start [/forum/topic.php?fid=20&msg=40026746&tid=1398404]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 146ms |
0 / 0 |