ListView+GDI+

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

ListView+GDI+

Сообщение Ramzes » 21.03.2006 (Вт) 15:24

Есть у кого примеры рисования ListViewItem(ов), Subitems, ColumnHeader

а то у меня как-то криво получается :(
Последний раз редактировалось Ramzes 21.03.2006 (Вт) 17:15, всего редактировалось 1 раз.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 21.03.2006 (Вт) 15:24

PS поиск по форуму ничего не дал, поиск в google пока тоже без результатны, а времени то мало :(

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 21.03.2006 (Вт) 16:41

А что именно нетак?

OwnerDraw=True ?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 21.03.2006 (Вт) 16:58

Sebas
OwnerDraw true
но когда рисую в ListViewItem (заливаю градиентом) заливает поверх всего (текста gridlines) (DrawBackground почему-то не помогает, может я нгеправильно испоьлую :( )

к сожаления исходники показать не могу (так как дома они) а пример посмотрел бы...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 21.03.2006 (Вт) 17:03

Ты должен рисовать всё. Включая текст и gridlines.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 21.03.2006 (Вт) 17:05

GSerg
вот я и прошу пример, потому как кроме того, что все рисовать надо (это я осилю) наблюдается несколько клюков (например при изминение ширины колонок грида. При прокручивание грида, при проведении по нему мишкй (мерцание)

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 21.03.2006 (Вт) 22:31

Попробуй это:
Код: Выделить всё
    Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
        Const WM_ERASEBKGND As Integer = &H14

        If m.Msg <> WM_ERASEBKGND Then MyBase.WndProc(m)

    End Sub
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 21.03.2006 (Вт) 23:30

Кстати событие
DrawSubItem не срабатывает, не могу понять почему

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 21.03.2006 (Вт) 23:31

Nord777
эээ :oops: А что с эти кодом делать?

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 22.03.2006 (Ср) 10:18

Все, разобрался :)
DrawSubItem не работал, потому, что в DrawItem DrawDefault=true. :)

А если в DrawItem ничего не рисовать, а рисовать в SrawSubItem? получается красиво, но тормознуто :(

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 22.03.2006 (Ср) 10:26

Ramzes

Чё рисуешь то?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 22.03.2006 (Ср) 10:31

Код: Выделить всё

dim LI as New LinearGradientBrush(e.SubItem.Bounds,Color.Gray, COlor.Silver,LinearGradientMode.Horizontal)

e.Graphics.FillRectangle(LGB,e.SubItem.Bounds)
lgb.dispose

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 22.03.2006 (Ср) 10:39

Понятно.
Слушай, вот скажи, у тебя при скроле вверх вниз, сетка правильно отрисовывается?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 22.03.2006 (Ср) 10:47

Sebas

Правильно, если Роисовать в DrawSubItem

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 22.03.2006 (Ср) 10:49

PS Может кто знает как ускорить сей процесс :roll:

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 22.03.2006 (Ср) 11:14

Ты бы выложил исходник.
Че гадать то на кофейной гуще?
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 22.03.2006 (Ср) 11:18

Ramzes писал(а):
Код: Выделить всё
dim LI as New LinearGradientBrush(e.SubItem.Bounds,Color.Gray, COlor.Silver,LinearGradientMode.Horizontal)

e.Graphics.FillRectangle(LGB,e.SubItem.Bounds)
lgb.dispose


а слона то я и не заметил :roll:

Рисую в DrawSubItem


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

    TopList