Imports System.Drawing.Drawing2D
'-------------------- [ /ComboBox ] ---------------------
Public Class ReactorComboBox : Inherits ComboBox
#Region " Control Help - Properties & Flicker Control "
Protected Overrides Sub OnPaintBackground(ByVal pevent As System.Windows.Forms.PaintEventArgs)
End Sub
Private _StartIndex As Integer = 0
Public Property StartIndex() As Integer
Get
Return _StartIndex
End Get
Set(ByVal value As Integer)
_StartIndex = value
Try
If Not MyBase.SelectedIndex <> Nothing Then
MyBase.SelectedIndex = value
End If
Catch
End Try
Invalidate()
End Set
End Property
Private LightBlack As Color = Color.FromArgb(37, 37, 37)
Private LighterBlack As Color = Color.FromArgb(60, 60, 60)
Sub ReplaceItem(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles Me.DrawItem
e.DrawBackground()
Try
If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then
e.Graphics.FillRectangle(New SolidBrush(Color.FromArgb(255, 0, 36, 0)), e.Bounds) '37 37 37
End If
If e.Index > -1 Then
Using b As New SolidBrush(e.ForeColor)
e.Graphics.DrawString(MyBase.GetItemText(MyBase.Items(e.Index)), e.Font, b, e.Bounds)
End Using
End If
Catch
End Try
e.DrawFocusRectangle()
End Sub
Protected Sub DrawTriangle(ByVal Clr As Color, ByVal FirstPoint As Point, ByVal SecondPoint As Point, ByVal ThirdPoint As Point, ByVal G As Graphics)
Dim points As New List(Of Point)()
points.Add(FirstPoint)
points.Add(SecondPoint)
points.Add(ThirdPoint)
G.FillPolygon(New SolidBrush(Clr), points.ToArray)
End Sub
#End Region
Sub New()
MyBase.New()
SetStyle(ControlStyles.AllPaintingInWmPaint Or _
ControlStyles.ResizeRedraw Or _
ControlStyles.UserPaint Or _
ControlStyles.DoubleBuffer, True)
DrawMode = Windows.Forms.DrawMode.OwnerDrawFixed
BackColor = Color.Black
ForeColor = Color.White
DropDownStyle = ComboBoxStyle.DropDownList
DoubleBuffered = True
Invalidate()
End Sub
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
MyBase.OnPaint(e)
Dim G As Graphics = e.Graphics
Dim T As LinearGradientBrush = New LinearGradientBrush(New Rectangle(0, 0, Width, 10), Color.FromArgb(62, Color.White), Color.FromArgb(30, Color.White), 90S)
Dim DrawCornersBrush As SolidBrush
DrawCornersBrush = New SolidBrush(Color.FromArgb(37, 37, 37))
Try
With G
.SmoothingMode = SmoothingMode.HighQuality
.Clear(Color.FromArgb(37, 37, 37))
.FillRectangle(T, New Rectangle(Width - 20, 0, Width, 9))
.DrawLine(Pens.Black, Width - 20, 0, Width - 20, Height)
Try
'.DrawString(Items(SelectedIndex).ToString, Font, Brushes.White, New Rectangle(New Point(3, 3), New Size(Width - 18, Height)))
.DrawString(Text, Font, Brushes.White, New Rectangle(3, 0, Width - 20, Height), New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Near})
Catch
End Try
.DrawLine(New Pen(New SolidBrush(Color.FromArgb(37, 37, 37))), 0, 0, 0, 0)
.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(0, 0, 0))), New Rectangle(1, 1, Width - 3, Height - 3))
.DrawLine(New Pen(New SolidBrush(Color.FromArgb(45, 45, 45))), 0, 0, Width, 0)
.DrawLine(New Pen(New SolidBrush(Color.FromArgb(45, 45, 45))), 0, 0, 0, Height)
.DrawLine(New Pen(New SolidBrush(Color.FromArgb(45, 45, 45))), Width - 1, 0, Width - 1, Height)
.DrawLine(New Pen(New SolidBrush(Color.FromArgb(70, 70, 70))), 0, Height - 1, Width, Height - 1)
DrawTriangle(Color.White, New Point(Width - 14, 8), New Point(Width - 7, 8), New Point(Width - 11, 11), G)
End With
Catch
End Try
End Sub
End Class
Comments
0 B
|0 👍
/0 👎
0 B
|👍
/👎