Guest User

Booster Theme [02/22]

a guest
Feb 22nd, 2016
958
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 37.30 KB | None | 0 0
  1. ' // Booster Theme GDI+
  2. ' // 9 Controls
  3. ' // Made by AeroRev9 / Naywyn
  4. ' // 02/22.
  5.  
  6. Option Strict On
  7.  
  8. Imports System.Threading
  9. Imports System.Drawing.Text
  10. Imports System.Drawing.Drawing2D
  11. Imports System.ComponentModel
  12.  
  13. Friend Module Helpers
  14.  
  15.     Public G As Graphics
  16.     Private TargetStringMeasure As SizeF
  17.  
  18.     Enum MouseState As Byte
  19.         None = 0
  20.         Over = 1
  21.         Down = 2
  22.     End Enum
  23.  
  24.     Enum RoundingStyle As Byte
  25.         All = 0
  26.         Top = 1
  27.         Bottom = 2
  28.         Left = 3
  29.         Right = 4
  30.         TopRight = 5
  31.         BottomRight = 6
  32.     End Enum
  33.  
  34.     Public Function ColorFromHex(Hex As String) As Color
  35.         Return Color.FromArgb(CInt(Long.Parse(String.Format("FFFFFFFFFF{0}", Hex.Substring(1)), Globalization.NumberStyles.HexNumber)))
  36.     End Function
  37.  
  38.     Public Function MiddlePoint(TargetText As String, TargetFont As Font, Rect As Rectangle) As Point
  39.         TargetStringMeasure = G.MeasureString(TargetText, TargetFont)
  40.         Return New Point(CInt(Rect.Width / 2 - TargetStringMeasure.Width / 2), CInt(Rect.Height / 2 - TargetStringMeasure.Height / 2))
  41.     End Function
  42.  
  43.     Public Function RoundRect(Rect As Rectangle, Rounding As Integer, Optional Style As RoundingStyle = RoundingStyle.All) As GraphicsPath
  44.  
  45.         Dim GP As New GraphicsPath()
  46.         Dim AW As Integer = Rounding * 2
  47.  
  48.         GP.StartFigure()
  49.  
  50.         If Rounding = 0 Then
  51.             GP.AddRectangle(Rect)
  52.             GP.CloseAllFigures()
  53.             Return GP
  54.         End If
  55.  
  56.         Select Case Style
  57.             Case RoundingStyle.All
  58.                 GP.AddArc(New Rectangle(Rect.X, Rect.Y, AW, AW), -180, 90)
  59.                 GP.AddArc(New Rectangle(Rect.Width - AW + Rect.X, Rect.Y, AW, AW), -90, 90)
  60.                 GP.AddArc(New Rectangle(Rect.Width - AW + Rect.X, Rect.Height - AW + Rect.Y, AW, AW), 0, 90)
  61.                 GP.AddArc(New Rectangle(Rect.X, Rect.Height - AW + Rect.Y, AW, AW), 90, 90)
  62.             Case RoundingStyle.Top
  63.                 GP.AddArc(New Rectangle(Rect.X, Rect.Y, AW, AW), -180, 90)
  64.                 GP.AddArc(New Rectangle(Rect.Width - AW + Rect.X, Rect.Y, AW, AW), -90, 90)
  65.                 GP.AddLine(New Point(Rect.X + Rect.Width, Rect.Y + Rect.Height), New Point(Rect.X, Rect.Y + Rect.Height))
  66.             Case RoundingStyle.Bottom
  67.                 GP.AddLine(New Point(Rect.X, Rect.Y), New Point(Rect.X + Rect.Width, Rect.Y))
  68.                 GP.AddArc(New Rectangle(Rect.Width - AW + Rect.X, Rect.Height - AW + Rect.Y, AW, AW), 0, 90)
  69.                 GP.AddArc(New Rectangle(Rect.X, Rect.Height - AW + Rect.Y, AW, AW), 90, 90)
  70.             Case RoundingStyle.Left
  71.                 GP.AddArc(New Rectangle(Rect.X, Rect.Y, AW, AW), -180, 90)
  72.                 GP.AddLine(New Point(Rect.X + Rect.Width, Rect.Y), New Point(Rect.X + Rect.Width, Rect.Y + Rect.Height))
  73.                 GP.AddArc(New Rectangle(Rect.X, Rect.Height - AW + Rect.Y, AW, AW), 90, 90)
  74.             Case RoundingStyle.Right
  75.                 GP.AddLine(New Point(Rect.X, Rect.Y + Rect.Height), New Point(Rect.X, Rect.Y))
  76.                 GP.AddArc(New Rectangle(Rect.Width - AW + Rect.X, Rect.Y, AW, AW), -90, 90)
  77.                 GP.AddArc(New Rectangle(Rect.Width - AW + Rect.X, Rect.Height - AW + Rect.Y, AW, AW), 0, 90)
  78.             Case RoundingStyle.TopRight
  79.                 GP.AddLine(New Point(Rect.X, Rect.Y + 1), New Point(Rect.X, Rect.Y))
  80.                 GP.AddArc(New Rectangle(Rect.Width - AW + Rect.X, Rect.Y, AW, AW), -90, 90)
  81.                 GP.AddLine(New Point(Rect.X + Rect.Width, Rect.Y + Rect.Height - 1), New Point(Rect.X + Rect.Width, Rect.Y + Rect.Height))
  82.                 GP.AddLine(New Point(Rect.X + 1, Rect.Y + Rect.Height), New Point(Rect.X, Rect.Y + Rect.Height))
  83.             Case RoundingStyle.BottomRight
  84.                 GP.AddLine(New Point(Rect.X, Rect.Y + 1), New Point(Rect.X, Rect.Y))
  85.                 GP.AddLine(New Point(Rect.X + Rect.Width - 1, Rect.Y), New Point(Rect.X + Rect.Width, Rect.Y))
  86.                 GP.AddArc(New Rectangle(Rect.Width - AW + Rect.X, Rect.Height - AW + Rect.Y, AW, AW), 0, 90)
  87.                 GP.AddLine(New Point(Rect.X + 1, Rect.Y + Rect.Height), New Point(Rect.X, Rect.Y + Rect.Height))
  88.         End Select
  89.  
  90.         GP.CloseAllFigures()
  91.  
  92.         Return GP
  93.  
  94.     End Function
  95.  
  96. End Module
  97.  
  98. Public Class BoosterButton
  99.     Inherits Button
  100.  
  101.     Private State As MouseState
  102.     Private Gradient As LinearGradientBrush
  103.  
  104.     Sub New()
  105.         DoubleBuffered = True
  106.         Font = New Font("Segoe UI", 9)
  107.         ForeColor = ColorFromHex("#B6B6B6")
  108.         SetStyle(ControlStyles.UserPaint Or ControlStyles.AllPaintingInWmPaint Or ControlStyles.Opaque Or ControlStyles.OptimizedDoubleBuffer, True)
  109.     End Sub
  110.  
  111.     Protected Overrides Sub OnPaint(e As PaintEventArgs)
  112.  
  113.         G = e.Graphics
  114.         G.SmoothingMode = SmoothingMode.HighQuality
  115.         G.TextRenderingHint = TextRenderingHint.ClearTypeGridFit
  116.  
  117.         MyBase.OnPaint(e)
  118.  
  119.         G.Clear(Parent.BackColor)
  120.  
  121.         If Enabled Then
  122.  
  123.             Select Case State
  124.                 Case MouseState.None
  125.                     Gradient = New LinearGradientBrush(New Rectangle(0, 0, Width - 1, Height - 1), ColorFromHex("#606060"), ColorFromHex("#4E4E4E"), LinearGradientMode.Vertical)
  126.  
  127.                 Case MouseState.Over
  128.                     Gradient = New LinearGradientBrush(New Rectangle(0, 0, Width - 1, Height - 1), ColorFromHex("#6A6A6A"), ColorFromHex("#585858"), LinearGradientMode.Vertical)
  129.  
  130.                 Case MouseState.Down
  131.                     Gradient = New LinearGradientBrush(New Rectangle(0, 0, Width - 1, Height - 1), ColorFromHex("#565656"), ColorFromHex("#444444"), LinearGradientMode.Vertical)
  132.  
  133.             End Select
  134.  
  135.             G.FillPath(Gradient, RoundRect(New Rectangle(0, 0, Width - 1, Height - 1), 3))
  136.  
  137.             Using Border As New Pen(ColorFromHex("#323232"))
  138.                 G.DrawPath(Border, RoundRect(New Rectangle(0, 0, Width - 1, Height - 1), 3))
  139.             End Using
  140.  
  141.             '// Top Line
  142.             Select Case State
  143.  
  144.                 Case MouseState.None
  145.  
  146.                     Using TopLine As New Pen(ColorFromHex("#737373"))
  147.                         G.DrawLine(TopLine, 4, 1, Width - 4, 1)
  148.                     End Using
  149.  
  150.                 Case MouseState.Over
  151.  
  152.                     Using TopLine As New Pen(ColorFromHex("#7D7D7D"))
  153.                         G.DrawLine(TopLine, 4, 1, Width - 4, 1)
  154.                     End Using
  155.  
  156.                 Case MouseState.Down
  157.  
  158.                     Using TopLine As New Pen(ColorFromHex("#696969"))
  159.                         G.DrawLine(TopLine, 4, 1, Width - 4, 1)
  160.                     End Using
  161.  
  162.             End Select
  163.  
  164.             Using TextBrush As New SolidBrush(ColorFromHex("#F5F5F5")), TextFont As New Font("Segoe UI", 9)
  165.                 G.DrawString(Text, TextFont, TextBrush, MiddlePoint(Text, TextFont, New Rectangle(0, 0, Width + 2, Height)))
  166.             End Using
  167.  
  168.         Else
  169.  
  170.             Gradient = New LinearGradientBrush(New Rectangle(0, 0, Width - 1, Height - 1), ColorFromHex("#4C4C4C"), ColorFromHex("#3A3A3A"), LinearGradientMode.Vertical)
  171.  
  172.             G.FillPath(Gradient, RoundRect(New Rectangle(0, 0, Width - 1, Height - 1), 3))
  173.  
  174.             Using Border As New Pen(ColorFromHex("#323232"))
  175.                 G.DrawPath(Border, RoundRect(New Rectangle(0, 0, Width - 1, Height - 1), 3))
  176.             End Using
  177.  
  178.             Using TopLine As New Pen(ColorFromHex("#5F5F5F"))
  179.                 G.DrawLine(TopLine, 4, 1, Width - 4, 1)
  180.             End Using
  181.  
  182.             Using TextBrush As New SolidBrush(ColorFromHex("#818181")), TextFont As New Font("Segoe UI", 9)
  183.                 G.DrawString(Text, TextFont, TextBrush, MiddlePoint(Text, TextFont, New Rectangle(0, 0, Width + 2, Height)))
  184.             End Using
  185.  
  186.         End If
  187.  
  188.     End Sub
  189.  
  190.     Protected Overrides Sub OnMouseEnter(e As EventArgs)
  191.         State = MouseState.Over : Invalidate()
  192.         MyBase.OnMouseEnter(e)
  193.     End Sub
  194.  
  195.     Protected Overrides Sub OnMouseLeave(e As EventArgs)
  196.         State = MouseState.None : Invalidate()
  197.         MyBase.OnMouseLeave(e)
  198.     End Sub
  199.  
  200.     Protected Overrides Sub OnMouseDown(e As MouseEventArgs)
  201.         State = MouseState.Down : Invalidate()
  202.         MyBase.OnMouseDown(e)
  203.     End Sub
  204.  
  205.     Protected Overrides Sub OnMouseUp(e As MouseEventArgs)
  206.         State = MouseState.Over : Invalidate()
  207.         MyBase.OnMouseUp(e)
  208.     End Sub
  209.  
  210. End Class
  211.  
  212. Public Class BoosterHeader
  213.     Inherits Control
  214.  
  215.     Private TextMeasure As SizeF
  216.  
  217.     Sub New()
  218.         DoubleBuffered = True
  219.         Font = New Font("Segoe UI", 10)
  220.         ForeColor = ColorFromHex("#C0C0C0")
  221.     End Sub
  222.  
  223.     Protected Overrides Sub OnPaint(e As PaintEventArgs)
  224.  
  225.         G = e.Graphics
  226.         G.SmoothingMode = SmoothingMode.HighQuality
  227.         G.TextRenderingHint = TextRenderingHint.ClearTypeGridFit
  228.  
  229.         G.Clear(Parent.BackColor)
  230.  
  231.         Using Line As New Pen(ColorFromHex("#5C5C5C"))
  232.             G.DrawLine(Line, 0, 6, Width - 1, 6)
  233.         End Using
  234.  
  235.         Using TextBrush As New SolidBrush(ColorFromHex("#D4D4D4")), TextFont As New Font("Segoe UI", 10), ParentFill As New SolidBrush(Parent.BackColor)
  236.             TextMeasure = G.MeasureString(Text, TextFont)
  237.             G.FillRectangle(ParentFill, New Rectangle(14, -4, CInt(TextMeasure.Width + 8), CInt(TextMeasure.Height + 4)))
  238.             G.DrawString(Text, TextFont, TextBrush, New Point(20, -4))
  239.         End Using
  240.  
  241.         MyBase.OnPaint(e)
  242.     End Sub
  243.  
  244.     Protected Overrides Sub OnResize(e As EventArgs)
  245.         Size = New Size(Width, 14)
  246.         MyBase.OnResize(e)
  247.     End Sub
  248.  
  249. End Class
  250.  
  251. Public Class BoosterToolTip
  252.     Inherits ToolTip
  253.  
  254.     Public Sub New()
  255.         OwnerDraw = True
  256.         BackColor = ColorFromHex("#242424")
  257.         AddHandler Draw, AddressOf OnDraw
  258.     End Sub
  259.  
  260.     Private Sub OnDraw(sender As Object, e As DrawToolTipEventArgs)
  261.  
  262.         G = e.Graphics
  263.         G.SmoothingMode = SmoothingMode.HighQuality
  264.         G.TextRenderingHint = TextRenderingHint.ClearTypeGridFit
  265.  
  266.         G.Clear(ColorFromHex("#242424"))
  267.  
  268.         Using Border As New Pen(ColorFromHex("#343434"))
  269.             G.DrawRectangle(Border, New Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Width - 1, e.Bounds.Height - 1))
  270.         End Using
  271.  
  272.         If ToolTipIcon = ToolTipIcon.None Then
  273.  
  274.             Using TextFont As New Font("Segoe UI", 9), TextBrush As New SolidBrush(ColorFromHex("#B6B6B6"))
  275.                 G.DrawString(e.ToolTipText, TextFont, TextBrush, New PointF(e.Bounds.X + 4, e.Bounds.Y + 1))
  276.             End Using
  277.  
  278.         Else
  279.  
  280.             Select Case ToolTipIcon
  281.  
  282.                 Case ToolTipIcon.Info
  283.  
  284.                     Using TextFont As New Font("Segoe UI", 9, FontStyle.Bold), TextBrush As New SolidBrush(ColorFromHex("#7FD88B"))
  285.                         G.DrawString("Information", TextFont, TextBrush, New PointF(e.Bounds.X + 4, e.Bounds.Y + 2))
  286.                     End Using
  287.  
  288.                 Case ToolTipIcon.Warning
  289.  
  290.                     Using TextFont As New Font("Segoe UI", 9, FontStyle.Bold), TextBrush As New SolidBrush(ColorFromHex("#D8C67F"))
  291.                         G.DrawString("Warning", TextFont, TextBrush, New PointF(e.Bounds.X + 4, e.Bounds.Y + 2))
  292.                     End Using
  293.  
  294.                 Case ToolTipIcon.Error
  295.  
  296.                     Using TextFont As New Font("Segoe UI", 9, FontStyle.Bold), TextBrush As New SolidBrush(ColorFromHex("#D87F7F"))
  297.                         G.DrawString("Error", TextFont, TextBrush, New PointF(e.Bounds.X + 4, e.Bounds.Y + 2))
  298.                     End Using
  299.  
  300.             End Select
  301.  
  302.             Using TextFont As New Font("Segoe UI", 9), TextBrush As New SolidBrush(ColorFromHex("#B6B6B6"))
  303.                 G.DrawString(e.ToolTipText, TextFont, TextBrush, New PointF(e.Bounds.X + 4, e.Bounds.Y + 15))
  304.             End Using
  305.  
  306.         End If
  307.  
  308.     End Sub
  309.  
  310. End Class
  311.  
  312. <DefaultEvent("TextChanged")>
  313. Public Class BoosterTextBox
  314.     Inherits Control
  315.  
  316.     Private WithEvents T As TextBox
  317.     Private State As MouseState
  318.  
  319.     Public Shadows Property Text As String
  320.         Get
  321.             Return T.Text
  322.         End Get
  323.         Set(value As String)
  324.             MyBase.Text = value
  325.             T.Text = value
  326.             Invalidate()
  327.         End Set
  328.     End Property
  329.  
  330.     Public Shadows Property Enabled As Boolean
  331.         Get
  332.             Return T.Enabled
  333.         End Get
  334.         Set(value As Boolean)
  335.             T.Enabled = value
  336.             Invalidate()
  337.         End Set
  338.     End Property
  339.  
  340.     Public Property UseSystemPasswordChar As Boolean
  341.         Get
  342.             Return T.UseSystemPasswordChar
  343.         End Get
  344.         Set(value As Boolean)
  345.             T.UseSystemPasswordChar = value
  346.             Invalidate()
  347.         End Set
  348.     End Property
  349.  
  350.     Public Property MultiLine() As Boolean
  351.         Get
  352.             Return T.Multiline
  353.         End Get
  354.         Set(ByVal value As Boolean)
  355.             T.Multiline = value
  356.             Size = New Size(T.Width + 2, T.Height + 2)
  357.             Invalidate()
  358.         End Set
  359.     End Property
  360.  
  361.     Public Shadows Property [ReadOnly]() As Boolean
  362.         Get
  363.             Return T.ReadOnly
  364.         End Get
  365.         Set(ByVal value As Boolean)
  366.             T.ReadOnly = value
  367.             Invalidate()
  368.         End Set
  369.     End Property
  370.  
  371.     Sub New()
  372.         DoubleBuffered = True
  373.  
  374.         T = New TextBox With {
  375.             .BorderStyle = BorderStyle.None,
  376.             .BackColor = ColorFromHex("#242424"),
  377.             .ForeColor = ColorFromHex("#B6B6B6"),
  378.             .Location = New Point(1, 1),
  379.             .Multiline = True}
  380.  
  381.         Controls.Add(T)
  382.     End Sub
  383.  
  384.     Protected Overrides Sub OnPaint(e As PaintEventArgs)
  385.  
  386.         G = e.Graphics
  387.         G.SmoothingMode = SmoothingMode.HighQuality
  388.         G.TextRenderingHint = TextRenderingHint.ClearTypeGridFit
  389.  
  390.         If Enabled Then
  391.  
  392.             T.BackColor = ColorFromHex("#242424")
  393.  
  394.             Select Case State
  395.  
  396.                 Case MouseState.Down
  397.  
  398.                     Using Border As New Pen(ColorFromHex("#C8C8C8"))
  399.                         G.DrawRectangle(Border, New Rectangle(0, 0, Width - 1, Height - 1))
  400.                     End Using
  401.  
  402.                 Case Else
  403.  
  404.                     Using Border As New Pen(ColorFromHex("#5C5C5C"))
  405.                         G.DrawRectangle(Border, New Rectangle(0, 0, Width - 1, Height - 1))
  406.                     End Using
  407.  
  408.             End Select
  409.  
  410.         Else
  411.  
  412.             T.BackColor = ColorFromHex("#282828")
  413.  
  414.             Using Border As New Pen(ColorFromHex("#484848"))
  415.                 G.DrawRectangle(Border, New Rectangle(0, 0, Width - 1, Height - 1))
  416.             End Using
  417.  
  418.         End If
  419.  
  420.         MyBase.OnPaint(e)
  421.  
  422.     End Sub
  423.  
  424.     Protected Overrides Sub OnEnter(e As EventArgs)
  425.         State = MouseState.Down : Invalidate()
  426.         MyBase.OnEnter(e)
  427.     End Sub
  428.  
  429.     Protected Overrides Sub OnLeave(e As EventArgs)
  430.         State = MouseState.None : Invalidate()
  431.         MyBase.OnLeave(e)
  432.     End Sub
  433.  
  434.     Protected Overrides Sub OnResize(e As EventArgs)
  435.         If MultiLine Then
  436.             T.Size = New Size(Width - 2, Height - 2) : Invalidate()
  437.         Else
  438.             T.Size = New Size(Width - 2, T.Height)
  439.             Size = New Size(Width, T.Height + 2)
  440.         End If
  441.         MyBase.OnResize(e)
  442.     End Sub
  443.  
  444.     Private Sub TTextChanged() Handles T.TextChanged
  445.         MyBase.OnTextChanged(EventArgs.Empty)
  446.     End Sub
  447.  
  448. End Class
  449.  
  450. Public Class BoosterComboBox
  451.     Inherits ComboBox
  452.  
  453.     Private State As MouseState
  454.     Private Rect As Rectangle
  455.  
  456.     Private ItemString As String = String.Empty
  457.     Private FirstItem As String = String.Empty
  458.  
  459.     Sub New()
  460.         ItemHeight = 20
  461.         DoubleBuffered = True
  462.         BackColor = Color.FromArgb(36, 36, 36)
  463.         DropDownStyle = ComboBoxStyle.DropDownList
  464.         DrawMode = DrawMode.OwnerDrawFixed
  465.         SetStyle(ControlStyles.UserPaint Or ControlStyles.AllPaintingInWmPaint Or ControlStyles.Opaque Or ControlStyles.OptimizedDoubleBuffer, True)
  466.     End Sub
  467.  
  468.     Protected Overrides Sub OnPaint(e As PaintEventArgs)
  469.  
  470.         G = e.Graphics
  471.         G.SmoothingMode = SmoothingMode.HighQuality
  472.         G.TextRenderingHint = TextRenderingHint.ClearTypeGridFit
  473.  
  474.         MyBase.OnPaint(e)
  475.  
  476.         G.Clear(Parent.BackColor)
  477.  
  478.         If Enabled Then
  479.  
  480.             Using Fill As New SolidBrush(ColorFromHex("#242424"))
  481.                 G.FillRectangle(Fill, New Rectangle(0, 0, Width - 1, Height - 1))
  482.             End Using
  483.  
  484.             Select Case State
  485.  
  486.                 Case MouseState.None
  487.  
  488.                     Using Border As New Pen(ColorFromHex("#5C5C5C"))
  489.                         G.DrawRectangle(Border, New Rectangle(0, 0, Width - 1, Height - 1))
  490.                     End Using
  491.  
  492.                 Case MouseState.Over
  493.  
  494.                     Using Border As New Pen(ColorFromHex("#C8C8C8"))
  495.                         G.DrawRectangle(Border, New Rectangle(0, 0, Width - 1, Height - 1))
  496.                     End Using
  497.  
  498.             End Select
  499.  
  500.             Using ArrowFont As New Font("Marlett", 12), ArrowBrush As New SolidBrush(ColorFromHex("#909090"))
  501.                 G.DrawString("6", ArrowFont, ArrowBrush, New Point(Width - 20, 5))
  502.             End Using
  503.  
  504.             If Not IsNothing(Items) Then
  505.  
  506.                 Try : FirstItem = GetItemText(Items(0)) : Catch : End Try
  507.  
  508.                 If Not SelectedIndex = -1 Then
  509.  
  510.                     Using TextBrush As New SolidBrush(ColorFromHex("#B6B6B6")), TextFont As New Font("Segoe UI", 9)
  511.                         G.DrawString(ItemString, TextFont, TextBrush, New Point(4, 4))
  512.                     End Using
  513.  
  514.                 Else
  515.  
  516.                     Using TextBrush As New SolidBrush(ColorFromHex("#B6B6B6")), TextFont As New Font("Segoe UI", 9)
  517.                         G.DrawString(FirstItem, TextFont, TextBrush, New Point(4, 4))
  518.                     End Using
  519.  
  520.                 End If
  521.  
  522.  
  523.             End If
  524.  
  525.         Else
  526.  
  527.             Using Fill As New SolidBrush(ColorFromHex("#282828")), Border As New Pen(ColorFromHex("#484848"))
  528.                 G.FillRectangle(Fill, New Rectangle(0, 0, Width - 1, Height - 1))
  529.                 G.DrawRectangle(Border, New Rectangle(0, 0, Width - 1, Height - 1))
  530.             End Using
  531.  
  532.             Using ArrowFont As New Font("Marlett", 12), ArrowBrush As New SolidBrush(ColorFromHex("#707070"))
  533.                 G.DrawString("6", ArrowFont, ArrowBrush, New Point(Width - 20, 5))
  534.             End Using
  535.  
  536.             If Not IsNothing(Items) Then
  537.  
  538.                 Try : FirstItem = GetItemText(Items(0)) : Catch : End Try
  539.  
  540.                 Using TextBrush As New SolidBrush(ColorFromHex("#818181")), TextFont As New Font("Segoe UI", 9)
  541.                     G.DrawString(FirstItem, TextFont, TextBrush, New Point(4, 4))
  542.                 End Using
  543.  
  544.             End If
  545.  
  546.         End If
  547.  
  548.     End Sub
  549.  
  550.     Protected Overrides Sub OnDrawItem(e As DrawItemEventArgs)
  551.  
  552.         G = e.Graphics
  553.         G.SmoothingMode = SmoothingMode.HighQuality
  554.         G.TextRenderingHint = TextRenderingHint.ClearTypeGridFit
  555.  
  556.         Rect = e.Bounds
  557.  
  558.         Using Back As New SolidBrush(ColorFromHex("#242424"))
  559.             G.FillRectangle(Back, New Rectangle(e.Bounds.X - 4, e.Bounds.Y - 1, e.Bounds.Width + 4, e.Bounds.Height - 1))
  560.         End Using
  561.  
  562.         If Not e.Index = -1 Then
  563.             ItemString = GetItemText(Items(e.Index))
  564.         End If
  565.  
  566.         Using ItemsFont As New Font("Segoe UI", 9), Border As New Pen(ColorFromHex("#D0D5D9"))
  567.  
  568.             If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then
  569.  
  570.                 Using HoverItemBrush As New SolidBrush(ColorFromHex("#F5F5F5"))
  571.                     G.DrawString(ItemString, New Font("Segoe UI", 9), HoverItemBrush, New Point(Rect.X + 5, Rect.Y + 1))
  572.                 End Using
  573.  
  574.             Else
  575.  
  576.                 Using DefaultItemBrush As New SolidBrush(ColorFromHex("#C0C0C0"))
  577.                     G.DrawString(ItemString, New Font("Segoe UI", 9), DefaultItemBrush, New Point(Rect.X + 5, Rect.Y + 1))
  578.                 End Using
  579.  
  580.             End If
  581.  
  582.         End Using
  583.  
  584.         e.DrawFocusRectangle()
  585.  
  586.         MyBase.OnDrawItem(e)
  587.  
  588.     End Sub
  589.  
  590.     Protected Overrides Sub OnSelectedItemChanged(ByVal e As EventArgs)
  591.         Invalidate()
  592.         MyBase.OnSelectedItemChanged(e)
  593.     End Sub
  594.  
  595.     Protected Overrides Sub OnSelectedIndexChanged(e As EventArgs)
  596.         State = MouseState.None : Invalidate()
  597.         MyBase.OnSelectedIndexChanged(e)
  598.     End Sub
  599.  
  600.     Protected Overrides Sub OnMouseEnter(e As EventArgs)
  601.         State = MouseState.Over : Invalidate()
  602.         MyBase.OnMouseEnter(e)
  603.     End Sub
  604.  
  605.     Protected Overrides Sub OnMouseLeave(e As EventArgs)
  606.         State = MouseState.None : Invalidate()
  607.         MyBase.OnMouseLeave(e)
  608.     End Sub
  609.  
  610. End Class
  611.  
  612. Public Class BoosterCheckBox
  613.     Inherits CheckBox
  614.  
  615.     Private State As MouseState
  616.     Private Block As Boolean
  617.  
  618.     Private CheckThread, UncheckThread As Thread
  619.     Private OverFillRect As New Rectangle(1, 1, 14, 14)
  620.  
  621.     Sub New()
  622.         DoubleBuffered = True
  623.         Font = New Font("Segoe UI", 9)
  624.         SetStyle(ControlStyles.UserPaint Or ControlStyles.AllPaintingInWmPaint Or ControlStyles.Opaque Or ControlStyles.OptimizedDoubleBuffer, True)
  625.     End Sub
  626.  
  627.     Private Sub CheckAnimation()
  628.  
  629.         Block = True
  630.  
  631.         Dim X As Integer = 1
  632.         Dim Rectw As Integer = 15
  633.  
  634.         While Not OverFillRect.Width = 0
  635.             X += 1
  636.             Rectw -= 1
  637.             OverFillRect = New Rectangle(X, OverFillRect.Y, Rectw, OverFillRect.Height)
  638.             Invalidate()
  639.             Thread.Sleep(30)
  640.         End While
  641.  
  642.         Block = False
  643.  
  644.     End Sub
  645.  
  646.     Private Sub UncheckAnimation()
  647.  
  648.         Block = True
  649.  
  650.         Dim X As Integer = 15
  651.         Dim Rectw As Integer = 0
  652.  
  653.         While Not OverFillRect.Width = 14
  654.             X -= 1
  655.             Rectw += 1
  656.             OverFillRect = New Rectangle(X, OverFillRect.Y, Rectw, OverFillRect.Height)
  657.             Invalidate()
  658.             Thread.Sleep(30)
  659.         End While
  660.  
  661.         Block = False
  662.  
  663.     End Sub
  664.  
  665.     Protected Overrides Sub OnPaint(e As PaintEventArgs)
  666.         G = e.Graphics
  667.         G.SmoothingMode = SmoothingMode.HighQuality
  668.         G.TextRenderingHint = TextRenderingHint.ClearTypeGridFit
  669.  
  670.         MyBase.OnPaint(e)
  671.  
  672.         G.Clear(Parent.BackColor)
  673.  
  674.         If Enabled Then
  675.  
  676.             Using Fill As New SolidBrush(ColorFromHex("#242424")), Border As New Pen(ColorFromHex("#5C5C5C"))
  677.                 G.FillRectangle(Fill, New Rectangle(0, 0, 16, 16))
  678.                 G.DrawRectangle(Border, New Rectangle(0, 0, 16, 16))
  679.             End Using
  680.  
  681.             Select Case State
  682.  
  683.                 Case MouseState.None
  684.  
  685.                     Using TextBrush As New SolidBrush(ColorFromHex("#B6B6B6")), TextFont As New Font("Segoe UI", 9)
  686.                         G.DrawString(Text, TextFont, TextBrush, New Point(25, -1))
  687.                     End Using
  688.  
  689.                 Case MouseState.Over
  690.  
  691.                     Using TextBrush As New SolidBrush(ColorFromHex("#F5F5F5")), TextFont As New Font("Segoe UI", 9)
  692.                         G.DrawString(Text, TextFont, TextBrush, New Point(25, -1))
  693.                     End Using
  694.  
  695.             End Select
  696.  
  697.             Using CheckFont As New Font("Marlett", 12), CheckBrush As New SolidBrush(Color.FromArgb(144, 144, 144))
  698.                 G.DrawString("b", CheckFont, CheckBrush, New Point(-2, 1))
  699.             End Using
  700.  
  701.             Using Fill As New SolidBrush(ColorFromHex("#242424"))
  702.                 G.SmoothingMode = SmoothingMode.None
  703.                 G.FillRectangle(Fill, OverFillRect)
  704.             End Using
  705.  
  706.         Else
  707.  
  708.             Using Fill As New SolidBrush(ColorFromHex("#282828")), Border As New Pen(ColorFromHex("#484848"))
  709.                 G.FillRectangle(Fill, New Rectangle(0, 0, 16, 16))
  710.                 G.DrawRectangle(Border, New Rectangle(0, 0, 16, 16))
  711.             End Using
  712.  
  713.             Using TextBrush As New SolidBrush(ColorFromHex("#818181")), TextFont As New Font("Segoe UI", 9)
  714.                 G.DrawString(Text, TextFont, TextBrush, New Point(25, -1))
  715.             End Using
  716.  
  717.             Using CheckFont As New Font("Marlett", 12), CheckBrush As New SolidBrush(ColorFromHex("#707070"))
  718.                 G.DrawString("b", CheckFont, CheckBrush, New Point(-2, 1))
  719.             End Using
  720.  
  721.             Using Fill As New SolidBrush(ColorFromHex("#282828"))
  722.                 G.SmoothingMode = SmoothingMode.None
  723.                 G.FillRectangle(Fill, OverFillRect)
  724.             End Using
  725.  
  726.         End If
  727.  
  728.     End Sub
  729.  
  730.     Protected Overrides Sub OnMouseEnter(e As EventArgs)
  731.         State = MouseState.Over : Invalidate()
  732.         MyBase.OnMouseEnter(e)
  733.     End Sub
  734.  
  735.     Protected Overrides Sub OnMouseLeave(e As EventArgs)
  736.         State = MouseState.None : Invalidate()
  737.         MyBase.OnMouseLeave(e)
  738.     End Sub
  739.  
  740.     Protected Overrides Sub OnCheckedChanged(e As EventArgs)
  741.  
  742.         If Checked Then
  743.             CheckThread = New Thread(AddressOf CheckAnimation) With {
  744.                 .IsBackground = True}
  745.             CheckThread.Start()
  746.         Else
  747.             UncheckThread = New Thread(AddressOf UncheckAnimation) With {
  748.              .IsBackground = True}
  749.             UncheckThread.Start()
  750.         End If
  751.  
  752.         If Not Block Then
  753.             MyBase.OnCheckedChanged(e)
  754.         End If
  755.  
  756.     End Sub
  757.  
  758. End Class
  759.  
  760. Public Class BoosterTabControl
  761.     Inherits TabControl
  762.  
  763.     Private MainRect As Rectangle
  764.     Private OverRect As Rectangle
  765.  
  766.     Private SubOverIndex As Integer = -1
  767.  
  768.     Private ReadOnly Property Hovering As Boolean
  769.         Get
  770.             Return Not OverIndex = -1
  771.         End Get
  772.     End Property
  773.  
  774.     Private Property OverIndex As Integer
  775.         Get
  776.             Return SubOverIndex
  777.         End Get
  778.         Set(value As Integer)
  779.             SubOverIndex = value
  780.             If Not SubOverIndex = -1 Then
  781.                 OverRect = GetTabRect(OverIndex)
  782.             End If
  783.             Invalidate()
  784.         End Set
  785.     End Property
  786.  
  787.     Sub New()
  788.         DoubleBuffered = True
  789.         Font = New Font("Segoe UI", 10)
  790.         ForeColor = ColorFromHex("#78797B")
  791.         ItemSize = New Size(40, 170)
  792.         SizeMode = TabSizeMode.Fixed
  793.         Alignment = TabAlignment.Left
  794.         SetStyle(ControlStyles.UserPaint Or ControlStyles.AllPaintingInWmPaint Or ControlStyles.Opaque Or ControlStyles.OptimizedDoubleBuffer, True)
  795.     End Sub
  796.  
  797.     Protected Overrides Sub CreateHandle()
  798.         For Each Tab As TabPage In TabPages
  799.             Tab.BackColor = ColorFromHex("#424242")
  800.             Tab.ForeColor = ColorFromHex("#B6B6B6")
  801.             Tab.Font = New Font("Segoe UI", 9)
  802.         Next
  803.         MyBase.CreateHandle()
  804.     End Sub
  805.  
  806.     Protected Overrides Sub OnPaint(e As PaintEventArgs)
  807.  
  808.         G = e.Graphics
  809.         G.SmoothingMode = SmoothingMode.HighQuality
  810.         G.TextRenderingHint = TextRenderingHint.ClearTypeGridFit
  811.  
  812.         G.Clear(ColorFromHex("#333333"))
  813.  
  814.         Using Border As New Pen(ColorFromHex("#292929"))
  815.             G.SmoothingMode = SmoothingMode.None
  816.             G.DrawLine(Border, ItemSize.Height + 3, 4, ItemSize.Height + 3, Height - 5)
  817.         End Using
  818.  
  819.         For I As Integer = 0 To TabPages.Count - 1
  820.  
  821.             MainRect = GetTabRect(I)
  822.  
  823.             If SelectedIndex = I Then
  824.  
  825.                 Using Selection As New SolidBrush(ColorFromHex("#424242"))
  826.                     G.FillRectangle(Selection, New Rectangle(MainRect.X - 6, MainRect.Y + 2, MainRect.Width + 8, MainRect.Height - 1))
  827.                 End Using
  828.  
  829.                 Using SelectionLeft As New SolidBrush(ColorFromHex("#F63333"))
  830.                     G.FillRectangle(SelectionLeft, New Rectangle(MainRect.X - 2, MainRect.Y + 2, 3, MainRect.Height - 1))
  831.                 End Using
  832.  
  833.                 Using TextBrush As New SolidBrush(ColorFromHex("#F5F5F5")), TextFont As New Font("Segoe UI", 10)
  834.                     G.DrawString(TabPages(I).Text, TextFont, TextBrush, New Point(MainRect.X + 25, MainRect.Y + 11))
  835.                 End Using
  836.  
  837.             Else
  838.  
  839.                 Using TextBrush As New SolidBrush(ColorFromHex("#C0C0C0")), TextFont As New Font("Segoe UI", 10)
  840.                     G.DrawString(TabPages(I).Text, TextFont, TextBrush, New Point(MainRect.X + 25, MainRect.Y + 11))
  841.                 End Using
  842.  
  843.             End If
  844.  
  845.             If Hovering Then
  846.  
  847.                 Using Selection As New SolidBrush(ColorFromHex("#383838"))
  848.                     G.FillRectangle(Selection, New Rectangle(OverRect.X - 6, OverRect.Y + 2, OverRect.Width + 8, OverRect.Height - 1))
  849.                 End Using
  850.  
  851.                 Using TextBrush As New SolidBrush(ColorFromHex("#C0C0C0")), TextFont As New Font("Segoe UI", 10)
  852.                     G.DrawString(TabPages(OverIndex).Text, TextFont, TextBrush, New Point(OverRect.X + 25, OverRect.Y + 11))
  853.                 End Using
  854.  
  855.             End If
  856.  
  857.         Next
  858.  
  859.         MyBase.OnPaint(e)
  860.  
  861.     End Sub
  862.  
  863.     Protected Overrides Sub OnMouseMove(e As MouseEventArgs)
  864.         For I As Integer = 0 To TabPages.Count - 1
  865.             If GetTabRect(I).Contains(e.Location) And Not SelectedIndex = I Then
  866.                 OverIndex = I
  867.                 Exit For
  868.             Else
  869.                 OverIndex = -1
  870.             End If
  871.         Next
  872.         MyBase.OnMouseMove(e)
  873.     End Sub
  874.  
  875.     Protected Overrides Sub OnMouseLeave(e As EventArgs)
  876.         OverIndex = -1
  877.         MyBase.OnMouseLeave(e)
  878.     End Sub
  879.  
  880. End Class
  881.  
  882. Public Class BoosterRadioButton
  883.     Inherits RadioButton
  884.  
  885.     Private State As MouseState
  886.  
  887.     Private CheckThread, UncheckThread As Thread
  888.     Private EllipseRect As New Rectangle(5, 5, 6, 6)
  889.  
  890.     Sub New()
  891.         DoubleBuffered = True
  892.         Font = New Font("Segoe UI", 9)
  893.         SetStyle(ControlStyles.UserPaint Or ControlStyles.AllPaintingInWmPaint Or ControlStyles.Opaque Or ControlStyles.OptimizedDoubleBuffer, True)
  894.     End Sub
  895.  
  896.     Private Sub CheckAnimation()
  897.  
  898.         Dim X As Integer = 1
  899.         Dim Y As Integer = 1
  900.         Dim EllipseW As Integer = 14
  901.         Dim EllipseH As Integer = 14
  902.  
  903.         While Not EllipseH = 8
  904.  
  905.             If X < 4 Then
  906.                 X += 1
  907.                 Y += 1
  908.             End If
  909.  
  910.             EllipseW -= 1
  911.             EllipseH -= 1
  912.             EllipseRect = New Rectangle(X, Y, EllipseW, EllipseH)
  913.             Invalidate()
  914.             Thread.Sleep(30)
  915.         End While
  916.  
  917.     End Sub
  918.  
  919.     Protected Overrides Sub OnPaint(e As PaintEventArgs)
  920.  
  921.         G = e.Graphics
  922.         G.SmoothingMode = SmoothingMode.HighQuality
  923.         G.TextRenderingHint = TextRenderingHint.ClearTypeGridFit
  924.  
  925.         MyBase.OnPaint(e)
  926.  
  927.         G.Clear(Parent.BackColor)
  928.  
  929.         If Enabled Then
  930.  
  931.             Using Fill As New SolidBrush(ColorFromHex("#242424")), Border As New Pen(ColorFromHex("#5C5C5C"))
  932.                 G.FillEllipse(Fill, New Rectangle(0, 0, 16, 16))
  933.                 G.DrawEllipse(Border, New Rectangle(0, 0, 16, 16))
  934.             End Using
  935.  
  936.             Select Case State
  937.  
  938.                 Case MouseState.None
  939.  
  940.                     Using TextBrush As New SolidBrush(ColorFromHex("#B6B6B6")), TextFont As New Font("Segoe UI", 9)
  941.                         G.DrawString(Text, TextFont, TextBrush, New Point(25, -1))
  942.                     End Using
  943.  
  944.                 Case MouseState.Over
  945.  
  946.                     Using TextBrush As New SolidBrush(ColorFromHex("#F5F5F5")), TextFont As New Font("Segoe UI", 9)
  947.                         G.DrawString(Text, TextFont, TextBrush, New Point(25, -1))
  948.                     End Using
  949.  
  950.             End Select
  951.  
  952.             If Checked Then
  953.  
  954.                 Using CheckBrush As New SolidBrush(ColorFromHex("#909090"))
  955.                     G.FillEllipse(CheckBrush, EllipseRect)
  956.                 End Using
  957.  
  958.             End If
  959.  
  960.         Else
  961.  
  962.             Using Fill As New SolidBrush(ColorFromHex("#282828")), Border As New Pen(ColorFromHex("#484848"))
  963.                 G.FillEllipse(Fill, New Rectangle(0, 0, 16, 16))
  964.                 G.DrawEllipse(Border, New Rectangle(0, 0, 16, 16))
  965.             End Using
  966.  
  967.             Using TextBrush As New SolidBrush(ColorFromHex("#818181")), TextFont As New Font("Segoe UI", 9)
  968.                 G.DrawString(Text, TextFont, TextBrush, New Point(25, -1))
  969.             End Using
  970.  
  971.             If Checked Then
  972.  
  973.                 Using CheckBrush As New SolidBrush(ColorFromHex("#707070"))
  974.                     G.FillEllipse(CheckBrush, EllipseRect)
  975.                 End Using
  976.  
  977.             End If
  978.  
  979.         End If
  980.  
  981.     End Sub
  982.  
  983.     Protected Overrides Sub OnMouseEnter(e As EventArgs)
  984.         State = MouseState.Over : Invalidate()
  985.         MyBase.OnMouseEnter(e)
  986.     End Sub
  987.  
  988.     Protected Overrides Sub OnMouseLeave(e As EventArgs)
  989.         State = MouseState.None : Invalidate()
  990.         MyBase.OnMouseLeave(e)
  991.     End Sub
  992.  
  993.     Protected Overrides Sub OnCheckedChanged(e As EventArgs)
  994.  
  995.         If Checked Then
  996.             CheckThread = New Thread(AddressOf CheckAnimation) With {
  997.                 .IsBackground = True}
  998.             CheckThread.Start()
  999.         End If
  1000.  
  1001.         MyBase.OnCheckedChanged(e)
  1002.     End Sub
  1003.  
  1004. End Class
  1005.  
  1006. Public Class BoosterNumericUpDown
  1007.     Inherits NumericUpDown
  1008.  
  1009.     Private State As MouseState
  1010.     Public Property AfterValue As String
  1011.  
  1012.     Private ValueChangedThread As Thread
  1013.     Private TextPoint As New Point(2, 2)
  1014.     Private TextFont As New Font("Segoe UI", 10)
  1015.  
  1016.     Sub New()
  1017.         DoubleBuffered = True
  1018.         Font = New Font("Segoe UI", 10)
  1019.         Controls(0).Hide()
  1020.         Controls(1).Hide()
  1021.         ForeColor = ColorFromHex("#B6B6B6")
  1022.         SetStyle(ControlStyles.UserPaint Or ControlStyles.AllPaintingInWmPaint Or ControlStyles.Opaque Or ControlStyles.OptimizedDoubleBuffer, True)
  1023.     End Sub
  1024.  
  1025.     Private Sub ValueChangedAnimation()
  1026.  
  1027.         Dim TextSize As Integer = 5
  1028.  
  1029.         While Not TextSize = 10
  1030.             TextSize += 1
  1031.             TextFont = New Font("Segoe UI", TextSize)
  1032.             Invalidate()
  1033.             Thread.Sleep(30)
  1034.         End While
  1035.  
  1036.     End Sub
  1037.  
  1038.     Protected Overrides Sub OnPaint(e As PaintEventArgs)
  1039.  
  1040.         G = e.Graphics
  1041.         G.SmoothingMode = SmoothingMode.HighQuality
  1042.         G.TextRenderingHint = TextRenderingHint.ClearTypeGridFit
  1043.  
  1044.         G.Clear(Parent.BackColor)
  1045.  
  1046.         MyBase.OnPaint(e)
  1047.  
  1048.         If Enabled Then
  1049.  
  1050.             Using Fill As New SolidBrush(ColorFromHex("#242424"))
  1051.                 G.FillRectangle(Fill, New Rectangle(0, 0, Width - 1, Height - 1))
  1052.             End Using
  1053.  
  1054.             Select Case State
  1055.  
  1056.                 Case MouseState.None
  1057.  
  1058.                     Using Border As New Pen(ColorFromHex("#5C5C5C"))
  1059.                         G.DrawRectangle(Border, New Rectangle(0, 0, Width - 1, Height - 1))
  1060.                     End Using
  1061.  
  1062.                 Case MouseState.Over
  1063.  
  1064.                     Using Border As New Pen(ColorFromHex("#C8C8C8"))
  1065.                         G.DrawRectangle(Border, New Rectangle(0, 0, Width - 1, Height - 1))
  1066.                     End Using
  1067.  
  1068.             End Select
  1069.  
  1070.             Using TextBrush As New SolidBrush(ColorFromHex("#B6B6B6"))
  1071.                 G.DrawString(Value & AfterValue, TextFont, TextBrush, TextPoint)
  1072.             End Using
  1073.  
  1074.             Using ArrowFont As New Font("Marlett", 10), ArrowBrush As New SolidBrush(ColorFromHex("#909090"))
  1075.                 G.DrawString("5", ArrowFont, ArrowBrush, New Point(Width - 18, 2))
  1076.                 G.DrawString("6", ArrowFont, ArrowBrush, New Point(Width - 18, 10))
  1077.             End Using
  1078.  
  1079.         Else
  1080.  
  1081.             Using Fill As New SolidBrush(ColorFromHex("#282828")), Border As New Pen(ColorFromHex("#484848"))
  1082.                 G.FillRectangle(Fill, New Rectangle(0, 0, Width - 1, Height - 1))
  1083.                 G.DrawRectangle(Border, New Rectangle(0, 0, Width - 1, Height - 1))
  1084.             End Using
  1085.  
  1086.             Using TextBrush As New SolidBrush(ColorFromHex("#818181"))
  1087.                 G.DrawString(Value & AfterValue, TextFont, TextBrush, TextPoint)
  1088.             End Using
  1089.  
  1090.             Using ArrowFont As New Font("Marlett", 10), ArrowBrush As New SolidBrush(ColorFromHex("#707070"))
  1091.                 G.DrawString("5", ArrowFont, ArrowBrush, New Point(Width - 18, 2))
  1092.                 G.DrawString("6", ArrowFont, ArrowBrush, New Point(Width - 18, 10))
  1093.             End Using
  1094.  
  1095.         End If
  1096.  
  1097.     End Sub
  1098.  
  1099.     Protected Overrides Sub OnMouseUp(e As MouseEventArgs)
  1100.  
  1101.         If e.X > Width - 16 AndAlso e.Y < 11 Then
  1102.  
  1103.             If Not Value + Increment > Maximum Then
  1104.                 Value += Increment
  1105.             Else
  1106.                 Value = Maximum
  1107.             End If
  1108.  
  1109.         ElseIf e.X > Width - 16 AndAlso e.Y > 13
  1110.             If Not Value - Increment < Minimum Then
  1111.                 Value -= Increment
  1112.             Else
  1113.                 Value = Minimum
  1114.             End If
  1115.         End If
  1116.  
  1117.         Invalidate()
  1118.  
  1119.         MyBase.OnMouseUp(e)
  1120.     End Sub
  1121.  
  1122.     Protected Overrides Sub OnMouseEnter(e As EventArgs)
  1123.         State = MouseState.Over : Invalidate()
  1124.         MyBase.OnMouseEnter(e)
  1125.     End Sub
  1126.  
  1127.     Protected Overrides Sub OnMouseLeave(e As EventArgs)
  1128.         State = MouseState.None : Invalidate()
  1129.         MyBase.OnMouseLeave(e)
  1130.     End Sub
  1131.  
  1132.     Protected Overrides Sub OnValueChanged(e As EventArgs)
  1133.         ValueChangedThread = New Thread(AddressOf ValueChangedAnimation) With {
  1134.             .IsBackground = True}
  1135.         ValueChangedThread.Start()
  1136.         MyBase.OnValueChanged(e)
  1137.     End Sub
  1138.  
  1139. End Class
Advertisement
Add Comment
Please, Sign In to add comment