ListBox BackgroundImage C#
Народ, посоветуйте как в С# на background ListBox-а засунуть рисунок?
Еще интересно как ListBox сделать прозрачным и как убрать вертикальный скрол.
Спасибо.
Цитата: polo_vova
Привет всем.
Народ, посоветуйте как в С# на background ListBox-а засунуть рисунок?
Еще интересно как ListBox сделать прозрачным и как убрать вертикальный скрол.
Спасибо.
Народ, посоветуйте как в С# на background ListBox-а засунуть рисунок?
Еще интересно как ListBox сделать прозрачным и как убрать вертикальный скрол.
Спасибо.
Рисунок просто так не засунешь в ListBox на background. Но выход есть, можно получить объект Image от рисунка и при помощи GDI и объекта Graphics нарисовать рисунок на ListBox. Получить доступ к поверхности рисования этого контрола можно в событии Paint. Если слишком сложно - обратись к сторонним продуктам.
Я в отнаследувался от ListBox и в событии OnPaint рисую background, а в событии OnDrawItem рисую елементы с иконочками. Но получается такая вещь что событие OnPaint происходит позже чем OnDrawItem, и background рисуется сверху по елементах и соответственно елементов не видно :)...как сделать на оборот? Спасибо.
Цитата: polo_vova
Спасибо за ответ :)
Я в отнаследувался от ListBox и в событии OnPaint рисую background, а в событии OnDrawItem рисую елементы с иконочками. Но получается такая вещь что событие OnPaint происходит позже чем OnDrawItem, и background рисуется сверху по елементах и соответственно елементов не видно :)...как сделать на оборот? Спасибо.
Я в отнаследувался от ListBox и в событии OnPaint рисую background, а в событии OnDrawItem рисую елементы с иконочками. Но получается такая вещь что событие OnPaint происходит позже чем OnDrawItem, и background рисуется сверху по елементах и соответственно елементов не видно :)...как сделать на оборот? Спасибо.
ИМХО, в событии OnDrawItem отрисовывай сначала фон, а потом уже элементы!!
Народ, хелп, буду благодарен за любые предложения :)
Цитата: polo_vova
Можна в событии OnDrawItem отрисовывать сначала фон....но тогда при передвижении по элементах такое "слайдшоу" начинается... :) Что то подвис я с этой проблемкой :( ...В Delphi и QT с этим попроще...но надо C#.
Народ, хелп, буду благодарен за любые предложения :)
Народ, хелп, буду благодарен за любые предложения :)
Перенеси перерисовку фона в событие Paint, в OnDrawItem оставь перерисовку только элементов списке. Теперь в Paint добавляй перерисовку элементов после перерисовки фона.
[/SIZE]
1.Если в OnPaint рисовать сначала фон, а потом элементы то тормоза и слайдшоу ужасные, ничего не видно кроме сплошного моргания.
2. Я и сделал свой клас, производный от ListBox, если в конструкторе прописать свойство фона, то реакции ноль. Просто ListBox наследуется от ListControl, а ListControl уже от Control.
Короче тупик...начал писаль свой колтрол...но добивает меня Color.Transparent :)
Спасибо.