![]() |
|
Модераторы: diadiavova, gambit |
![]()
|
|
| Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 2 Всего: 15 |
Можно ли в Listboxe сделать, чтобы Itemы были разного цвета? Если можно, то как?
-------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 7 Всего: 61 |
Поковыряйся тут: http://vbaccelerator.com/home/NET/Code/Con...boBox/index.asp
|
|||
|
||||
| DarkDragon |
|
|||
![]() GradVin ![]() ![]() Профиль Группа: Участник Сообщений: 296 Регистрация: 19.8.2006 Репутация: 5 Всего: 8 |
Конечно можно!!!
ListBox это наследуемый класс, т. е. его можно наследовать. Далее мы можем модернизировать этот класс. Если мы это сделаем мы можем получить внутри класса защищенные методы. У ListBox'а есть 2 случая(Event) 1 - DrawItem (защищенный метод Protected Overrides Sub OnDrawItem), 2 - MeasureItem (Prot. Over. Sub OnMeasureItem). Ну их можно получить и не наследуя данного класса, просто добавить к реальному ListBox'у два этих случая. 1 метод это то что будет рисовать лист бокс. 2 метод это то что, какой размер будет у Item'ов. Вот маленький примерчик: Class ModernListBox Inherits ListBox Sub New() End Sub Dim curclr As Color Dim brsh As SolidBrush Protected Overrides Sub OnDrawItem(ByVal e As DrawItemEventArgs) If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then e.Graphics.FillRectangle(Brushes.Black, e.Bounds) e.Graphics.DrawString(Items.Item(e.Index), Font, Brushes.White, e.Bounds.X + 2, e.Bounds.Y + 1) Else e.Graphics.FillRectangle(brsh, e.Bounds) e.Graphics.DrawString(Items.Item(e.Index), Font, Brushes.Black, e.Bounds.X + 2, e.Bounds.Y + 1) End If End Sub Protected Overrides Sub OnMeasureItem(ByVal e As MeasureItemEventArgs) e.ItemWidth = Width e.ItemHeight = Font.Height + 2 End Sub End Class Вот теперь ЛистБокс будет рисовать то что мы указали ему в методе OnDrawItem() Не забудь у данного класса поставить DrawMode = Variable ModernListBox.DrawMode = Vairable. Теперь остается немного подумать и доделать мой код. Если не справишься пиши на [email protected], постараюсь помочь! |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 18 Всего: 186 |
1) Пожалуйста, пользуйтесь тегами [ code = vb ] [ / code ] для подсветки кода!
2) Не стоит поднимать темы, которым более двух недель. Всё равно автор наверняка сам решил проблему. 3) Надо бы в FAQ засунуть... |
|||
|
||||
| Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 2 Всего: 15 |
Exception, да решил. Но так проще. DarkDragon, BR. Пасиб. -------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
![]()
|
| Правила форума VB .NET | |
|
|
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |