Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.ComponentModel Imports System.Drawing.Text ''' ''' Valley Theme ''' Created by Earn ''' from HackForums.net ''' ''' #Region "Properties" #Region " Mouse States" Enum MouseState As Byte None = 0 Over = 1 Down = 2 Block = 3 End Enum #End Region #End Region Class ValleyTheme Inherits ContainerControl #Region "Variables" Private Cap As Boolean = False Private MousePoint As New Point(0, 0) Private MoveHeight = 36 #End Region #Region "Properties" Public WriteOnly Property TransparencyKey As Color Set(ByVal value As Color) value = Color.Fuchsia End Set End Property Protected Overrides Sub OnCreateControl() MyBase.OnCreateControl() ParentForm.FormBorderStyle = FormBorderStyle.None ParentForm.AllowTransparency = False ParentForm.TransparencyKey = Color.Fuchsia ParentForm.FindForm.StartPosition = FormStartPosition.CenterScreen Dock = DockStyle.Fill Invalidate() End Sub Protected Overrides Sub OnMouseDown(e As MouseEventArgs) MyBase.OnMouseDown(e) If e.Button = Windows.Forms.MouseButtons.Left And New Rectangle(0, 0, Width, MoveHeight).Contains(e.Location) Then Cap = True MousePoint = e.Location End If End Sub Protected Overrides Sub OnMouseUp(e As MouseEventArgs) MyBase.OnMouseUp(e) : Cap = False End Sub Protected Overrides Sub OnMouseMove(e As MouseEventArgs) MyBase.OnMouseMove(e) If Cap Then Parent.Location = MousePosition - MousePoint End If End Sub #End Region Sub New() SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer, True) DoubleBuffered = True BackColor = Color.FromArgb(242, 242, 242) Font = New Font("Segoe UI", 9) End Sub Protected Overrides Sub OnPaint(e As PaintEventArgs) Dim G = e.Graphics G.Clear(Color.FromArgb(22, 22, 22)) G.DrawRectangle(New Pen(Color.FromArgb(38, 38, 38)), New Rectangle(0, 0, Width - 1, Height - 1)) G.FillRectangle(New LinearGradientBrush(New Point(0, 0), New Point(0, 36), Color.FromArgb(50, 50, 50), Color.FromArgb(47, 47, 47)), New Rectangle(1, 1, Width - 2, 36)) G.FillRectangle(New LinearGradientBrush(New Point(0, 0), New Point(0, Height), Color.FromArgb(45, 45, 45), Color.FromArgb(23, 23, 23)), New Rectangle(1, 36, Width - 2, Height - 46)) G.DrawRectangle(New Pen(Color.FromArgb(38, 38, 38)), New Rectangle(9, 35, Width - 19, Height - 45)) G.FillRectangle(New SolidBrush(BackColor), New Rectangle(10, 36, Width - 20, Height - 46)) G.FillRectangle(New SolidBrush(Color.FromArgb(47, 47, 47)), New Rectangle(9, 35, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(47, 47, 47)), New Rectangle(Width - 10, 35, 1, 1)) G.FillRectangle(New SolidBrush(Color.Fuchsia), New Rectangle(0, 0, 1, 1)) G.FillRectangle(New SolidBrush(Color.Fuchsia), New Rectangle(Width - 1, 0, 1, 1)) G.FillRectangle(New SolidBrush(Color.Fuchsia), New Rectangle(0, Height - 1, 1, 1)) G.FillRectangle(New SolidBrush(Color.Fuchsia), New Rectangle(Width - 1, Height - 1, 1, 1)) G.DrawString(FindForm.Text, New Font("Segoe UI", 10), New SolidBrush(Color.FromArgb(242, 242, 242)), New Point(12, 6)) MyBase.OnPaint(e) End Sub End Class Class ValleyButton Inherits Control #Region "Variables" Private State As MouseState = MouseState.None #End Region #Region "Properties" #Region " Mouse States" Protected Overrides Sub OnMouseDown(e As MouseEventArgs) MyBase.OnMouseDown(e) State = MouseState.Down : Invalidate() End Sub Protected Overrides Sub OnMouseUp(e As MouseEventArgs) MyBase.OnMouseUp(e) State = MouseState.Over : Invalidate() End Sub Protected Overrides Sub OnMouseEnter(e As EventArgs) MyBase.OnMouseEnter(e) State = MouseState.Over : Invalidate() End Sub Protected Overrides Sub OnMouseLeave(e As EventArgs) MyBase.OnMouseLeave(e) State = MouseState.None : Invalidate() End Sub #End Region #End Region Sub New() Size = New Size(150, 50) End Sub Protected Overrides Sub OnPaint(e As PaintEventArgs) Dim G = e.Graphics G.Clear(Color.FromArgb(34, 122, 247)) G.DrawRectangle(New Pen(Color.FromArgb(42, 59, 252)), New Rectangle(0, 0, Width - 1, Height - 1)) Select Case State Case MouseState.Over G.FillRectangle(New SolidBrush(Color.FromArgb(20, Color.White)), New Rectangle(1, 1, Width - 2, Height - 2)) Case MouseState.Down G.FillRectangle(New SolidBrush(Color.FromArgb(20, Color.Black)), New Rectangle(1, 1, Width - 2, Height - 2)) End Select G.FillRectangle(New SolidBrush(BackColor), New Rectangle(0, 0, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(134, 144, 253)), New Rectangle(0, 1, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(134, 144, 253)), New Rectangle(1, 0, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(56, 72, 251)), New Rectangle(0, 2, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(56, 72, 251)), New Rectangle(2, 0, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(62, 107, 249)), New Rectangle(1, 1, 1, 1)) G.FillRectangle(New SolidBrush(BackColor), New Rectangle(Width - 1, 0, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(134, 144, 253)), New Rectangle(Width - 1, 1, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(134, 144, 253)), New Rectangle(Width - 2, 0, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(56, 72, 251)), New Rectangle(Width - 1, 2, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(56, 72, 251)), New Rectangle(Width - 3, 0, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(62, 107, 249)), New Rectangle(Width - 2, 1, 1, 1)) G.FillRectangle(New SolidBrush(BackColor), New Rectangle(0, Height - 1, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(134, 144, 253)), New Rectangle(0, Height - 2, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(134, 144, 253)), New Rectangle(1, Height - 1, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(56, 72, 251)), New Rectangle(0, Height - 3, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(56, 72, 251)), New Rectangle(2, Height - 1, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(62, 107, 249)), New Rectangle(1, Height - 2, 1, 1)) G.FillRectangle(New SolidBrush(BackColor), New Rectangle(Width - 1, Height - 1, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(134, 144, 253)), New Rectangle(Width - 1, Height - 2, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(134, 144, 253)), New Rectangle(Width - 2, Height - 1, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(56, 72, 251)), New Rectangle(Width - 1, Height - 3, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(56, 72, 251)), New Rectangle(Width - 3, Height - 1, 1, 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(62, 107, 249)), New Rectangle(Width - 2, Height - 2, 1, 1)) G.DrawString(Text, Font, Brushes.White, New Point((Width / 2) - (TextRenderer.MeasureText(Text, Font).Width / 2), (Height / 2) - (TextRenderer.MeasureText(Text, Font).Height / 2))) MyBase.OnPaint(e) End Sub End Class Class ValleyRadioButton Inherits Control #Region " Variables" Private State As MouseState = MouseState.None Private W, H As Integer Private _Checked As Boolean #End Region #Region " Properties" Property Checked() As Boolean Get Return _Checked End Get Set(value As Boolean) _Checked = value InvalidateControls() RaiseEvent CheckedChanged(Me) Invalidate() End Set End Property Event CheckedChanged(ByVal sender As Object) Protected Overrides Sub OnClick(e As EventArgs) If Not _Checked Then Checked = True MyBase.OnClick(e) End Sub Private Sub InvalidateControls() If Not IsHandleCreated OrElse Not _Checked Then Return For Each C As Control In Parent.Controls If C IsNot Me AndAlso TypeOf C Is ValleyRadioButton Then DirectCast(C, ValleyRadioButton).Checked = False Invalidate() End If Next End Sub Protected Overrides Sub OnCreateControl() MyBase.OnCreateControl() InvalidateControls() End Sub Protected Overrides Sub OnResize(e As EventArgs) MyBase.OnResize(e) Height = 16 End Sub #Region " Mouse States" Protected Overrides Sub OnMouseDown(e As MouseEventArgs) MyBase.OnMouseDown(e) State = MouseState.Down : Invalidate() End Sub Protected Overrides Sub OnMouseUp(e As MouseEventArgs) MyBase.OnMouseUp(e) State = MouseState.Over : Invalidate() End Sub Protected Overrides Sub OnMouseEnter(e As EventArgs) MyBase.OnMouseEnter(e) State = MouseState.Over : Invalidate() End Sub Protected Overrides Sub OnMouseLeave(e As EventArgs) MyBase.OnMouseLeave(e) State = MouseState.None : Invalidate() End Sub #End Region #End Region Protected Overrides Sub OnPaint(e As PaintEventArgs) Dim G = e.Graphics G.SmoothingMode = 2 G.TextRenderingHint = 5 G.Clear(BackColor) G.DrawEllipse(New Pen(Color.FromArgb(191, 191, 191)), New Rectangle(0, 0, 15, 15)) Select Case State Case MouseState.Over G.DrawEllipse(New Pen(Color.FromArgb(160, 160, 160)), New Rectangle(0, 0, 15, 15)) End Select If Checked Then G.FillEllipse(New SolidBrush(Color.FromArgb(56, 56, 56)), New Rectangle(4, 4, 7, 7)) End If G.DrawString(Text, Font, New SolidBrush(Color.FromArgb(131, 131, 131)), New Point(18, -3)) MyBase.OnPaint(e) End Sub End Class Class ValleyCheckBox Inherits Control #Region "Variables" Private W, H As Integer Private State As MouseState = MouseState.None Private _Checked As Boolean #End Region #Region " Properties" Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs) MyBase.OnTextChanged(e) Invalidate() End Sub Property Checked() As Boolean Get Return _Checked End Get Set(ByVal value As Boolean) _Checked = value Invalidate() End Set End Property Event CheckedChanged(ByVal sender As Object) Protected Overrides Sub OnClick(ByVal e As System.EventArgs) _Checked = Not _Checked RaiseEvent CheckedChanged(Me) MyBase.OnClick(e) End Sub Protected Overrides Sub OnResize(e As EventArgs) MyBase.OnResize(e) Height = 16 End Sub #End Region #Region " Mouse States" Protected Overrides Sub OnMouseDown(e As MouseEventArgs) MyBase.OnMouseDown(e) State = MouseState.Down : Invalidate() End Sub Protected Overrides Sub OnMouseUp(e As MouseEventArgs) MyBase.OnMouseUp(e) State = MouseState.Over : Invalidate() End Sub Protected Overrides Sub OnMouseEnter(e As EventArgs) MyBase.OnMouseEnter(e) State = MouseState.Over : Invalidate() End Sub Protected Overrides Sub OnMouseLeave(e As EventArgs) MyBase.OnMouseLeave(e) State = MouseState.None : Invalidate() End Sub #End Region Protected Overrides Sub OnPaint(e As PaintEventArgs) Dim G = e.Graphics G.Clear(BackColor) G.DrawRectangle(New Pen(Color.FromArgb(192, 192, 192)), New Rectangle(0, 0, 15, 15)) Select Case State Case MouseState.Over G.DrawRectangle(New Pen(Color.FromArgb(160, 160, 160)), New Rectangle(0, 0, 15, 15)) End Select If Checked Then G.DrawString("ΓΌ", New Font("Wingdings", 9), New SolidBrush(Color.FromArgb(56, 56, 56)), New Point(0, 2)) End If G.FillRectangle(New SolidBrush(BackColor), New Rectangle(0, 0, 1, 1)) G.FillRectangle(New SolidBrush(BackColor), New Rectangle(15, 15, 1, 1)) G.FillRectangle(New SolidBrush(BackColor), New Rectangle(0, 15, 1, 1)) G.FillRectangle(New SolidBrush(BackColor), New Rectangle(15, 0, 1, 1)) G.DrawString(Text, Font, New SolidBrush(Color.FromArgb(131, 131, 131)), New Point(18, -3)) MyBase.OnPaint(e) End Sub End Class Class ValleyProgressbar Inherits Control #Region " Variables" Private W, H As Integer Private _Value As Integer = 0 Private _Maximum As Integer = 100 #End Region #Region " Control" Public Property Maximum() As Integer Get Return _Maximum End Get Set(V As Integer) Select Case V Case Is < _Value _Value = V End Select _Maximum = V Invalidate() End Set End Property Public Property Value() As Integer Get Select Case _Value Case 0 Return 0 Invalidate() Case Else Return _Value Invalidate() End Select End Get Set(V As Integer) Select Case V Case Is > _Maximum V = _Maximum Invalidate() End Select _Value = V Invalidate() End Set End Property #End Region #Region "Events" Protected Overrides Sub OnResize(e As EventArgs) MyBase.OnResize(e) Height = 25 End Sub Protected Overrides Sub CreateHandle() MyBase.CreateHandle() Height = 25 End Sub Public Sub Increment(ByVal Amount As Integer) Value += Amount End Sub #End Region Sub New() SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or _ ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer, True) DoubleBuffered = True End Sub Protected Overrides Sub OnPaint(e As PaintEventArgs) Dim G = e.Graphics G.TextRenderingHint = TextRenderingHint.ClearTypeGridFit G.SmoothingMode = SmoothingMode.HighQuality G.PixelOffsetMode = PixelOffsetMode.HighQuality G.Clear(Color.FromArgb(223, 223, 223)) Dim ProgVal As Integer = CInt(_Value / _Maximum * Width) Select Value Case 0 G.FillRectangle(New SolidBrush(Color.FromArgb(223, 223, 223)), New Rectangle(0, 0, Width, Height)) G.FillRectangle(New SolidBrush(Color.FromArgb(50, 124, 244)), New Rectangle(0, 0, ProgVal - 1, Height)) Case _Maximum G.FillRectangle(New SolidBrush(Color.FromArgb(223, 223, 223)), New Rectangle(0, 0, Width, Height)) G.FillRectangle(New SolidBrush(Color.FromArgb(50, 124, 244)), New Rectangle(0, 0, ProgVal - 1, Height)) Case Else G.FillRectangle(New SolidBrush(Color.FromArgb(223, 223, 223)), New Rectangle(0, 0, Width, Height)) G.FillRectangle(New SolidBrush(Color.FromArgb(50, 124, 244)), New Rectangle(0, 0, ProgVal - 1, Height)) End Select G.InterpolationMode = CType(7, InterpolationMode) MyBase.OnPaint(e) End Sub End Class Class ValleyTextBox Inherits Control #Region " Variables" Private W, H As Integer Private State As MouseState = MouseState.None Private WithEvents TB As Windows.Forms.TextBox #End Region #Region " Properties" #Region " TextBox Properties" Private _TextAlign As HorizontalAlignment = HorizontalAlignment.Left _ Property TextAlign() As HorizontalAlignment Get Return _TextAlign End Get Set(ByVal value As HorizontalAlignment) _TextAlign = value If TB IsNot Nothing Then TB.TextAlign = value End If End Set End Property Private _MaxLength As Integer = 32767 _ Property MaxLength() As Integer Get Return _MaxLength End Get Set(ByVal value As Integer) _MaxLength = value If TB IsNot Nothing Then TB.MaxLength = value End If End Set End Property Private _ReadOnly As Boolean _ Property [ReadOnly]() As Boolean Get Return _ReadOnly End Get Set(ByVal value As Boolean) _ReadOnly = value If TB IsNot Nothing Then TB.ReadOnly = value End If End Set End Property Private _UseSystemPasswordChar As Boolean _ Property UseSystemPasswordChar() As Boolean Get Return _UseSystemPasswordChar End Get Set(ByVal value As Boolean) _UseSystemPasswordChar = value If TB IsNot Nothing Then TB.UseSystemPasswordChar = value End If End Set End Property Private _Multiline As Boolean _ Property Multiline() As Boolean Get Return _Multiline End Get Set(ByVal value As Boolean) _Multiline = value If TB IsNot Nothing Then TB.Multiline = value If value Then TB.Height = Height - 11 Else Height = TB.Height + 11 End If End If End Set End Property _ Overrides Property Text As String Get Return MyBase.Text End Get Set(ByVal value As String) MyBase.Text = value If TB IsNot Nothing Then TB.Text = value End If End Set End Property _ Overrides Property Font As Font Get Return MyBase.Font End Get Set(ByVal value As Font) MyBase.Font = value If TB IsNot Nothing Then TB.Font = value TB.Location = New Point(3, 5) TB.Width = Width - 6 If Not _Multiline Then Height = TB.Height + 11 End If End If End Set End Property Protected Overrides Sub OnCreateControl() MyBase.OnCreateControl() If Not Controls.Contains(TB) Then Controls.Add(TB) End If End Sub Private Sub OnBaseTextChanged(ByVal s As Object, ByVal e As EventArgs) Text = TB.Text End Sub Private Sub OnBaseKeyDown(ByVal s As Object, ByVal e As KeyEventArgs) If e.Control AndAlso e.KeyCode = Keys.A Then TB.SelectAll() e.SuppressKeyPress = True End If If e.Control AndAlso e.KeyCode = Keys.C Then TB.Copy() e.SuppressKeyPress = True End If End Sub Protected Overrides Sub OnResize(ByVal e As EventArgs) TB.Location = New Point(5, 5) TB.Width = Width - 10 If _Multiline Then TB.Height = Height - 11 Else Height = TB.Height + 11 End If MyBase.OnResize(e) End Sub #End Region #Region " Colors" _ Public Property TextColor As Color Get Return _TextColor End Get Set(value As Color) _TextColor = value End Set End Property Public Overrides Property ForeColor() As Color Get Return _TextColor End Get Set(value As Color) _TextColor = value End Set End Property #End Region #Region " Mouse States" Protected Overrides Sub OnMouseDown(e As MouseEventArgs) MyBase.OnMouseDown(e) State = MouseState.Down : Invalidate() End Sub Protected Overrides Sub OnMouseUp(e As MouseEventArgs) MyBase.OnMouseUp(e) State = MouseState.Over : TB.Focus() : Invalidate() End Sub Protected Overrides Sub OnMouseEnter(e As EventArgs) MyBase.OnMouseEnter(e) State = MouseState.Over : TB.Focus() : Invalidate() End Sub Protected Overrides Sub OnMouseLeave(e As EventArgs) MyBase.OnMouseLeave(e) State = MouseState.None : Invalidate() End Sub #End Region #End Region #Region " Colors" Private _BaseColor As Color = BackColor Private _TextColor As Color = Color.FromArgb(131, 131, 131) Private _BorderColor As Color = Color.FromArgb(191, 191, 191) #End Region Sub New() SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or _ ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer Or _ ControlStyles.SupportsTransparentBackColor, True) DoubleBuffered = True BackColor = Color.Transparent TB = New Windows.Forms.TextBox TB.Font = Font TB.Text = Text TB.BackColor = _BaseColor TB.ForeColor = _TextColor TB.MaxLength = _MaxLength TB.Multiline = _Multiline TB.ReadOnly = _ReadOnly TB.UseSystemPasswordChar = _UseSystemPasswordChar TB.BorderStyle = BorderStyle.None TB.Location = New Point(5, 5) TB.Width = Width - 10 TB.Cursor = Cursors.IBeam If _Multiline Then TB.Height = Height - 11 Else Height = TB.Height + 11 End If AddHandler TB.TextChanged, AddressOf OnBaseTextChanged AddHandler TB.KeyDown, AddressOf OnBaseKeyDown End Sub Protected Overrides Sub OnPaint(e As PaintEventArgs) Dim G = e.Graphics G.Clear(Color.FromArgb(242, 242, 242)) G.DrawRectangle(New Pen(_BorderColor), New Rectangle(0, 0, Width - 1, Height - 1)) MyBase.OnPaint(e) End Sub End Class Class ValleyClose Inherits Control #Region " Variables" Private State As MouseState = MouseState.None Private x As Integer #End Region #Region " Properties" #Region " Mouse States" Protected Overrides Sub OnMouseEnter(e As EventArgs) MyBase.OnMouseEnter(e) State = MouseState.Over : Invalidate() End Sub Protected Overrides Sub OnMouseDown(e As MouseEventArgs) MyBase.OnMouseDown(e) State = MouseState.Down : Invalidate() End Sub Protected Overrides Sub OnMouseLeave(e As EventArgs) MyBase.OnMouseLeave(e) State = MouseState.None : Invalidate() End Sub Protected Overrides Sub OnMouseUp(e As MouseEventArgs) MyBase.OnMouseUp(e) State = MouseState.Over : Invalidate() End Sub Protected Overrides Sub OnMouseMove(e As MouseEventArgs) MyBase.OnMouseMove(e) x = e.X : Invalidate() End Sub Protected Overrides Sub OnClick(e As EventArgs) MyBase.OnClick(e) Environment.Exit(0) End Sub #End Region Protected Overrides Sub OnResize(e As EventArgs) MyBase.OnResize(e) Size = New Size(16, 16) End Sub #End Region Sub New() SetStyle(ControlStyles.SupportsTransparentBackColor, True) SetStyle(ControlStyles.Opaque, True) Anchor = AnchorStyles.Top Or AnchorStyles.Right End Sub Protected Overrides Sub OnPaint(e As PaintEventArgs) Dim G = e.Graphics G.Clear(Color.FromArgb(49, 49, 49)) G.SmoothingMode = SmoothingMode.HighQuality G.FillEllipse(New SolidBrush(Color.FromArgb(39, 39, 39)), New Rectangle(0, 0, 15, 15)) G.FillEllipse(New SolidBrush(Color.FromArgb(254, 97, 82)), New Rectangle(2, 2, 11, 11)) Select Case State Case MouseState.Over G.FillEllipse(New SolidBrush(Color.FromArgb(40, Color.White)), New Rectangle(2, 2, 11, 11)) Case MouseState.Down G.FillEllipse(New SolidBrush(Color.FromArgb(40, Color.Black)), New Rectangle(2, 2, 11, 11)) End Select MyBase.OnPaint(e) End Sub End Class Class ValleyMax Inherits Control #Region " Variables" Private State As MouseState = MouseState.None Private x As Integer #End Region #Region " Properties" #Region " Mouse States" Protected Overrides Sub OnMouseEnter(e As EventArgs) MyBase.OnMouseEnter(e) State = MouseState.Over : Invalidate() End Sub Protected Overrides Sub OnMouseDown(e As MouseEventArgs) MyBase.OnMouseDown(e) State = MouseState.Down : Invalidate() End Sub Protected Overrides Sub OnMouseLeave(e As EventArgs) MyBase.OnMouseLeave(e) State = MouseState.None : Invalidate() End Sub Protected Overrides Sub OnMouseUp(e As MouseEventArgs) MyBase.OnMouseUp(e) State = MouseState.Over : Invalidate() End Sub Protected Overrides Sub OnMouseMove(e As MouseEventArgs) MyBase.OnMouseMove(e) x = e.X : Invalidate() End Sub Protected Overrides Sub OnClick(e As EventArgs) MyBase.OnClick(e) Select Case FindForm.WindowState Case FormWindowState.Maximized FindForm.WindowState = FormWindowState.Normal Case FormWindowState.Normal FindForm.WindowState = FormWindowState.Maximized End Select End Sub #End Region Protected Overrides Sub OnResize(e As EventArgs) MyBase.OnResize(e) Size = New Size(16, 16) End Sub #End Region Sub New() SetStyle(ControlStyles.SupportsTransparentBackColor, True) SetStyle(ControlStyles.Opaque, True) Anchor = AnchorStyles.Top Or AnchorStyles.Right End Sub Protected Overrides Sub OnPaint(e As PaintEventArgs) Dim G = e.Graphics G.Clear(Color.FromArgb(49, 49, 49)) G.SmoothingMode = SmoothingMode.HighQuality G.FillEllipse(New SolidBrush(Color.FromArgb(39, 39, 39)), New Rectangle(0, 0, 15, 15)) G.FillEllipse(New SolidBrush(Color.FromArgb(254, 190, 4)), New Rectangle(2, 2, 11, 11)) Select Case State Case MouseState.Over G.FillEllipse(New SolidBrush(Color.FromArgb(40, Color.White)), New Rectangle(2, 2, 11, 11)) Case MouseState.Down G.FillEllipse(New SolidBrush(Color.FromArgb(40, Color.Black)), New Rectangle(2, 2, 11, 11)) End Select MyBase.OnPaint(e) End Sub End Class Class ValleyMini Inherits Control #Region " Variables" Private State As MouseState = MouseState.None Private x As Integer #End Region #Region " Properties" #Region " Mouse States" Protected Overrides Sub OnMouseEnter(e As EventArgs) MyBase.OnMouseEnter(e) State = MouseState.Over : Invalidate() End Sub Protected Overrides Sub OnMouseDown(e As MouseEventArgs) MyBase.OnMouseDown(e) State = MouseState.Down : Invalidate() End Sub Protected Overrides Sub OnMouseLeave(e As EventArgs) MyBase.OnMouseLeave(e) State = MouseState.None : Invalidate() End Sub Protected Overrides Sub OnMouseUp(e As MouseEventArgs) MyBase.OnMouseUp(e) State = MouseState.Over : Invalidate() End Sub Protected Overrides Sub OnMouseMove(e As MouseEventArgs) MyBase.OnMouseMove(e) x = e.X : Invalidate() End Sub Protected Overrides Sub OnClick(e As EventArgs) MyBase.OnClick(e) Select Case FindForm.WindowState Case FormWindowState.Normal FindForm.WindowState = FormWindowState.Minimized Case FormWindowState.Maximized FindForm.WindowState = FormWindowState.Minimized End Select End Sub #End Region Protected Overrides Sub OnResize(e As EventArgs) MyBase.OnResize(e) Size = New Size(16, 16) End Sub #End Region Sub New() SetStyle(ControlStyles.SupportsTransparentBackColor, True) SetStyle(ControlStyles.Opaque, True) Anchor = AnchorStyles.Top Or AnchorStyles.Right End Sub Protected Overrides Sub OnPaint(e As PaintEventArgs) Dim G = e.Graphics G.Clear(Color.FromArgb(49, 49, 49)) G.SmoothingMode = SmoothingMode.HighQuality G.FillEllipse(New SolidBrush(Color.FromArgb(39, 39, 39)), New Rectangle(0, 0, 15, 15)) G.FillEllipse(New SolidBrush(Color.FromArgb(23, 205, 58)), New Rectangle(2, 2, 11, 11)) Select Case State Case MouseState.Over G.FillEllipse(New SolidBrush(Color.FromArgb(40, Color.White)), New Rectangle(2, 2, 11, 11)) Case MouseState.Down G.FillEllipse(New SolidBrush(Color.FromArgb(40, Color.Black)), New Rectangle(2, 2, 11, 11)) End Select MyBase.OnPaint(e) End Sub End Class