ComboBox Paint Event

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

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

BusyMan
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 08.06.2005 (Ср) 11:37
Откуда: Moscow

ComboBox Paint Event

Сообщение BusyMan » 08.06.2005 (Ср) 11:39

Мне нужно свой собственный перерисованный ComboBox, но у него нег события Paint. :shock: Как поступать в этом случае?

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

Сообщение Sebas » 08.06.2005 (Ср) 12:15

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

sebas<-@->mail.ru

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 08.06.2005 (Ср) 15:28

если тебе надо перерисовать итемы тогда это пригодится, сам комбо бокс я перерисовывать не пробовал

Этот пример выводит список Цветов и показывает его в самом итеме для каждого элемента, короче говоря это пример ColorBox -а
Protected Overrides Sub OnDrawItem(ByVal e As System.Windows.Forms.DrawItemEventArgs)
MyBase.OnDrawItem(e)

If CBool(e.State And DrawItemState.Selected) Then
Try
Dim Bounds As Rectangle = e.Bounds
Dim rc As New RectangleF(e.Bounds.X + 30, e.Bounds.Y + 1, e.Bounds.Width - 5, e.Bounds.Height - 4)
Dim colRec As New Rectangle(e.Bounds.X + 3, e.Bounds.Y + 3, 25, 10)
Dim Rect As New Rectangle(e.Bounds.X + 1, e.Bounds.Y + 1, e.Bounds.Width - 1, e.Bounds.Height - 1)
e.Graphics.FillRectangle(New SolidBrush(Color.LightGoldenrodYellow), rc)
e.Graphics.DrawRectangle(New Pen(Color.Black), colRec)
Dim sf As New StringFormat
sf.Alignment = StringAlignment.Near
Dim fnt As New Font("Verdana", 8, FontStyle.Bold, GraphicsUnit.Point)
e.Graphics.FillRectangle(New SolidBrush(Color.LightSteelBlue), Rect)
e.Graphics.FillRectangle(New SolidBrush(Color.FromName(Me.Items.Item(e.Index))), colRec)
e.Graphics.DrawString(Me.Items.Item(e.Index), fnt, New SolidBrush(Color.Black), rc, sf)
Bounds = Nothing
rc = Nothing
colRec = Nothing
sf.Dispose()
sf = Nothing
Catch
End Try
Else
Try
Dim Bounds As Rectangle = e.Bounds
Dim rc As New RectangleF(e.Bounds.X + 30, e.Bounds.Y + 1, e.Bounds.Width - 5, e.Bounds.Height - 4)
Dim colRec As New Rectangle(e.Bounds.X + 3, e.Bounds.Y + 3, 25, 10)
Dim Rect As New Rectangle(e.Bounds.X + 1, e.Bounds.Y + 1, e.Bounds.Width - 1, e.Bounds.Height - 1)
e.Graphics.FillRectangle(New SolidBrush(Color.White), Rect)

e.Graphics.FillRectangle(New SolidBrush(Color.LightGoldenrodYellow), rc)
e.Graphics.DrawRectangle(New Pen(Color.Black), colRec)
Dim sf As New StringFormat
sf.Alignment = StringAlignment.Near
Dim fnt As New Font("Verdana", 8, FontStyle.Bold, GraphicsUnit.Point)
e.Graphics.DrawString(Me.Items.Item(e.Index), fnt, New SolidBrush(Color.Black), rc, sf)
e.Graphics.FillRectangle(New SolidBrush(Color.FromName(Me.Items.Item(e.Index))), colRec)
Bounds = Nothing
rc = Nothing
colRec = Nothing
sf.Dispose()
sf = Nothing
Catch
End Try
End If


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

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

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

    TopList