Mempercantik tampilan form - Espada Fajar

Latest

buka mata buka telinga

Mempercantik tampilan form

assalamualaikum blogger dan programmer VB.NET

anda membuat program, tapi bentuknya jelek. dan terlihat sangat tidak profesional sekali......
nih , saya bantu.....
skin gratisan (sebenarnya sih THEME) untuk VB.NET

cara penggunaanya yaitu .......

- buat class.vb baru. kemduian masukkin code ini
__________________________________________________________________________________

Imports System.ComponentModel, System.Drawing, System.Drawing.Drawing2D
Enum MouseState As Byte
    None = 0
    Over = 1
    Down = 2
    Block = 3
End Enum

Class SharpButton

    Inherits Control
  
#Region " Control Help - MouseState & Flicker Control"
    Private State As MouseState = MouseState.None
    Protected Overrides Sub OnMouseEnter(ByVal e As System.EventArgs)
        MyBase.OnMouseEnter(e)
        State = MouseState.Over
        Invalidate()
    End Sub
    Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
        MyBase.OnMouseDown(e)
        State = MouseState.Down
        Invalidate()
    End Sub
    Protected Overrides Sub OnMouseLeave(ByVal e As System.EventArgs)
        MyBase.OnMouseLeave(e)
        State = MouseState.None
        Invalidate()
    End Sub
    Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
        MyBase.OnMouseUp(e)
        State = MouseState.Over
        Invalidate()
    End Sub
    Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
        MyBase.OnTextChanged(e)
        Invalidate()
    End Sub

#End Region
    Public Property Color2() As Boolean
        Get
            Return _Color2
        End Get
        Set(ByVal value As Boolean)
            _Color2 = value
            Me.Refresh()
        End Set
    End Property
    Private _Color2 As Boolean = False
    Sub New()
        MyBase.New()
        SetStyle(ControlStyles.UserPaint Or ControlStyles.SupportsTransparentBackColor, True)
        ForeColor = Color.FromArgb(210, 220, 230)
        DoubleBuffered = True
        Font = New Font("Verdana", 8.5F, FontStyle.Regular)
    End Sub

    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        Dim bmp As New Bitmap(Width, Height)
        Dim G As Graphics = Graphics.FromImage(bmp)
        MyBase.OnPaint(e)

        Select Case State
            Case MouseState.None
                If _Color2 Then
                    G.Clear(Color.FromArgb(43, 53, 63))
                    Dim BTNLGBOver As New LinearGradientBrush(New Rectangle(2, 1, Width - 3, Height / 2 - 2), Color.FromArgb(37, 47, 57), Color.FromArgb(140, 149, 155), 180)
                    G.FillRectangle(BTNLGBOver, New Rectangle(2, 1, Width - 3, Height / 2 - 2))
                    Dim BTNLGB1 As New LinearGradientBrush(New Rectangle(0, 1, Width - 2, Height / 2 - 2), Color.FromArgb(140, 149, 155), Color.FromArgb(37, 47, 57), 180)
                    G.FillRectangle(BTNLGB1, New Rectangle(1, 1, Width / 2, Height / 2 - 2))

                    G.SmoothingMode = SmoothingMode.HighQuality

                    '----- Borders -----
                   G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(23, 33, 43))), New Rectangle(0, 0, Width - 1, Height - 1))
                    Dim InnerRect As New LinearGradientBrush(New Rectangle(1, 1, Width - 3, Height - 2), Color.FromArgb(113, 123, 133), Color.FromArgb(50, 50, 50), 90)
                    G.DrawRectangle(New Pen(InnerRect), New Rectangle(1, 1, Width - 3, Height - 3))
                    G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(63, 73, 83))), 2, Height - 2, Width - 2, Height - 2)
                    G.DrawString(Text, Font, New SolidBrush(ForeColor), New Rectangle(0, -1, Width - 1, Height - 1), New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Center})
                Else
                    G.Clear(Color.FromArgb(43, 53, 63))
                    Dim BTNLGBOver As New LinearGradientBrush(New Rectangle(2, 1, Width - 3, Height / 2 - 2), Color.FromArgb(37, 47, 57), Color.FromArgb(140, 149, 155), LinearGradientMode.Horizontal)
                    G.FillRectangle(BTNLGBOver, New Rectangle(2, 1, Width - 3, Height / 2 - 2))
                    Dim BTNLGB1 As New LinearGradientBrush(New Rectangle(0, 1, Width - 2, Height / 2 - 2), Color.FromArgb(140, 149, 155), Color.FromArgb(37, 47, 57), LinearGradientMode.Horizontal)
                    G.FillRectangle(BTNLGB1, New Rectangle(1, 1, Width / 2, Height / 2 - 2))

                    G.SmoothingMode = SmoothingMode.HighQuality

                    '----- Borders -----
                   G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(33, 43, 53))), New Rectangle(0, 0, Width - 1, Height - 1))
                    Dim InnerRect As New LinearGradientBrush(New Rectangle(1, 1, Width - 3, Height - 2), Color.FromArgb(153, 163, 173), Color.FromArgb(50, 50, 50), 90)
                    G.DrawRectangle(New Pen(InnerRect), New Rectangle(1, 1, Width - 3, Height - 3))
                    G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(73, 83, 93))), 1, Height - 2, Width - 2, Height - 2)
                    G.DrawString(Text, Font, New SolidBrush(ForeColor), New Rectangle(0, -1, Width - 1, Height - 1), New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Center})
                End If
            Case MouseState.Over
                If _Color2 Then
                    G.Clear(Color.FromArgb(47, 57, 67))
                    Dim LGBOver As New LinearGradientBrush(New Rectangle(2, 1, Width - 3, Height / 2 - 2), Color.FromArgb(43, 53, 63), Color.FromArgb(157, 166, 172), 180)
                    G.FillRectangle(LGBOver, New Rectangle(2, 1, Width - 3, Height / 2 - 2))
                    Dim LGBOver1 As New LinearGradientBrush(New Rectangle(0, 1, Width - 2, Height / 2 - 2), Color.FromArgb(157, 166, 172), Color.FromArgb(43, 53, 63), 180)
                    G.FillRectangle(LGBOver1, New Rectangle(1, 1, Width / 2, Height / 2 - 2))

                    G.SmoothingMode = SmoothingMode.HighQuality

                    '----- Borders -----
                   G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(29, 39, 49))), New Rectangle(0, 0, Width - 1, Height - 1))
                    Dim InnerRect As New LinearGradientBrush(New Rectangle(1, 1, Width - 3, Height - 2), Color.FromArgb(153, 163, 173), Color.FromArgb(50, 50, 50), 90S)
                    G.DrawRectangle(New Pen(InnerRect), New Rectangle(1, 1, Width - 3, Height - 3))
                    G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(73, 83, 93))), 1, Height - 2, Width - 2, Height - 2)
                    G.DrawString(Text, Font, New SolidBrush(Color.FromArgb(200, 210, 220)), New Rectangle(0, -1, Width - 1, Height - 1), New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Center})
                Else
                    G.Clear(Color.FromArgb(51, 61, 71))
                    Dim LGBOver As New LinearGradientBrush(New Rectangle(2, 1, Width - 3, Height / 2 - 2), Color.FromArgb(43, 53, 63), Color.FromArgb(154, 163, 169), LinearGradientMode.Horizontal)
                    G.FillRectangle(LGBOver, New Rectangle(2, 1, Width - 3, Height / 2 - 2))
                    Dim LGBOver1 As New LinearGradientBrush(New Rectangle(0, 1, Width - 2, Height / 2 - 2), Color.FromArgb(154, 163, 169), Color.FromArgb(43, 53, 63), LinearGradientMode.Horizontal)
                    G.FillRectangle(LGBOver1, New Rectangle(0, 1, Width / 2, Height / 2 - 2))

                    G.SmoothingMode = SmoothingMode.HighQuality

                    '----- Borders -----
                   G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(43, 53, 63))), New Rectangle(0, 0, Width - 1, Height - 1))
                    Dim InnerRect As New LinearGradientBrush(New Rectangle(1, 1, Width - 3, Height - 2), Color.FromArgb(163, 173, 183), Color.FromArgb(60, 60, 60), 90)
                    G.DrawRectangle(New Pen(InnerRect), New Rectangle(1, 1, Width - 3, Height - 3))
                    G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(83, 93, 103))), 1, Height - 2, Width - 2, Height - 2)
                    G.DrawString(Text, Font, New SolidBrush(Color.FromArgb(200, 210, 220)), New Rectangle(0, -1, Width - 1, Height - 1), New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Center})
                End If
            Case MouseState.Down
                If _Color2 Then
                    G.Clear(Color.FromArgb(37, 47, 57))
                    Dim BTNLGBOver As New LinearGradientBrush(New Rectangle(2, 1, Width - 3, Height / 2 - 2), Color.FromArgb(35, 45, 55), Color.FromArgb(132, 141, 147), 180)
                    G.FillRectangle(BTNLGBOver, New Rectangle(2, 1, Width - 3, Height / 2 - 2))
                    Dim BTNLGB1 As New LinearGradientBrush(New Rectangle(0, 1, Width - 2, Height / 2 - 2), Color.FromArgb(132, 141, 147), Color.FromArgb(35, 45, 55), 180)
                    G.FillRectangle(BTNLGB1, New Rectangle(0, 1, Width / 2, Height / 2 - 2))

                    G.SmoothingMode = SmoothingMode.HighQuality

                    '----- Borders -----
                   G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(33, 43, 53))), New Rectangle(0, 0, Width - 1, Height - 1))
                    Dim InnerRect As New LinearGradientBrush(New Rectangle(1, 1, Width - 3, Height - 2), Color.FromArgb(93, 103, 113), Color.FromArgb(45, 45, 45), 90)
                    G.DrawRectangle(New Pen(InnerRect), New Rectangle(1, 1, Width - 3, Height - 3))
                    G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(53, 63, 73))), 1, Height - 2, Width - 2, Height - 2)
                    G.DrawString(Text, Font, New SolidBrush(ForeColor), New Rectangle(1, -1, Width - 1, Height), New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Center})
                Else
                    G.Clear(Color.FromArgb(43, 53, 63))
                    Dim BTNLGBOver As New LinearGradientBrush(New Rectangle(2, 1, Width - 3, Height / 2 - 2), Color.FromArgb(27, 37, 47), Color.FromArgb(130, 139, 145), LinearGradientMode.Horizontal)
                    G.FillRectangle(BTNLGBOver, New Rectangle(2, 1, Width - 3, Height / 2 - 2))
                    Dim BTNLGB1 As New LinearGradientBrush(New Rectangle(0, 1, Width - 2, Height / 2 - 2), Color.FromArgb(130, 139, 145), Color.FromArgb(27, 37, 47), LinearGradientMode.Horizontal)
                    G.FillRectangle(BTNLGB1, New Rectangle(0, 1, Width / 2, Height / 2 - 2))

                    G.SmoothingMode = SmoothingMode.HighQuality

                    '----- Borders -----
                   G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(33, 43, 53))), New Rectangle(0, 0, Width - 1, Height - 1))
                    Dim InnerRect As New LinearGradientBrush(New Rectangle(1, 1, Width - 3, Height - 2), Color.FromArgb(123, 133, 143), Color.FromArgb(55, 55, 55), 90)
                    G.DrawRectangle(New Pen(InnerRect), New Rectangle(1, 1, Width - 3, Height - 3))
                    G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(73, 83, 93))), 2, Height - 2, Width - 2, Height - 2)
                    G.DrawString(Text, Font, New SolidBrush(ForeColor), New Rectangle(1, -1, Width - 1, Height), New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Center})
                End If
        End Select

        e.Graphics.DrawImage(bmp, 0, 0)
        G.Dispose()
        bmp.Dispose()

    End Sub
End Class

Class SharpForm
    Inherits ContainerControl
    Private Header As Integer
    Private Cap As Boolean
    Private MouseP As Point = New Point(0, 0)
    Private path As GraphicsPath
    Protected G As Graphics, bmp As Bitmap
    Private Function RoundRect(ByVal r As RectangleF, ByVal r1 As Single, ByVal r2 As Single, ByVal r3 As Single, ByVal r4 As Single) As GraphicsPath
        Dim x As Single = r.X, y As Single = r.Y, w As Single = r.Width, h As Single = r.Height
        Dim rr5 As GraphicsPath = New GraphicsPath
        rr5.AddBezier(x, y + r1, x, y, x + r1, y, x + r1, y)
        rr5.AddLine(x + r1, y, x + w - r2, y)
        rr5.AddBezier(x + w - r2, y, x + w, y, x + w, y + r2, x + w, y + r2)
        rr5.AddLine(x + w, y + r2, x + w, y + h - r3)
        rr5.AddBezier(x + w, y + h - r3, x + w, y + h, x + w - r3, y + h, x + w - r3, y + h)
        rr5.AddLine(x + w - r3, y + h, x + r4, y + h)
        rr5.AddBezier(x + r4, y + h, x, y + h, x, y + h - r4, x, y + h - r4)
        rr5.AddLine(x, y + h - r4, x, y + r1)
        Return rr5
    End Function
#Region " Control Help - Movement & Flicker Control "
    Protected Overrides Sub OnInvalidated(ByVal e As System.Windows.Forms.InvalidateEventArgs)
        MyBase.OnInvalidated(e)
        ParentForm.FindForm.Text = Text
    End Sub
    Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
        MyBase.OnTextChanged(e)
        Invalidate()
    End Sub
    Protected Overrides Sub OnCreateControl()
        MyBase.OnCreateControl()
        Me.ParentForm.FormBorderStyle = FormBorderStyle.None
        Me.ParentForm.TransparencyKey = Color.Fuchsia
    End Sub
    Protected Overrides Sub CreateHandle()
        MyBase.CreateHandle()
    End Sub
    Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
        MyBase.OnMouseDown(e)
        If e.Button = Windows.Forms.MouseButtons.Left And New Rectangle(0, 0, Width, Header).Contains(e.Location) Then
            Cap = True : MouseP = e.Location
        End If
    End Sub
    Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
        MyBase.OnMouseUp(e) : Cap = False
    End Sub
    Protected Overrides Sub OnMouseMove(ByVal e As System.Windows.Forms.MouseEventArgs)
        MyBase.OnMouseMove(e)
        If Cap Then
            Parent.Location = MousePosition - MouseP
        End If
    End Sub
    Private Sub minimBtnClick() Handles minimBtn.Click
        ParentForm.FindForm.WindowState = FormWindowState.Minimized
    End Sub
    Private Sub closeBtnClick() Handles closeBtn.Click
        If CloseButtonExitsApp Then
            System.Environment.Exit(0)
        Else
            ParentForm.FindForm.Close()
        End If
    End Sub
    Private _closesEnv As Boolean = False
    Public Property CloseButtonExitsApp() As Boolean
        Get
            Return _closesEnv
        End Get
        Set(ByVal v As Boolean)
            _closesEnv = v
            Invalidate()
        End Set
    End Property

    Private _minimBool As Boolean = True
    Public Property MinimizeButton() As Boolean
        Get
            Return _minimBool
        End Get
        Set(ByVal v As Boolean)
            _minimBool = v
            Invalidate()
        End Set
    End Property
#End Region


    Dim WithEvents minimBtn As New SharpTopButton With {.TopButtonTXT = SharpTopButton.TxtState.Minim, .Location = New Point(Width - 60, 0)}
    Dim WithEvents closeBtn As New SharpTopButton With {.TopButtonTXT = SharpTopButton.TxtState.Close, .Location = New Point(Width - 40, 0)}


    Public Property Color2() As Boolean
        Get
            Return _Color2
        End Get
        Set(ByVal value As Boolean)
            _Color2 = value
            Me.Refresh()
        End Set
    End Property
    Private _Color2 As Boolean = True


    Sub New()
        MyBase.new()
        Header = 25
        Dock = DockStyle.Fill
        DoubleBuffered = True

        Controls.Add(closeBtn)

        closeBtn.Refresh() : minimBtn.Refresh()
    End Sub
    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        bmp = New Bitmap(Width, Height)
        G = Graphics.FromImage(bmp)
        Dim TransparencyKey As Color = Me.ParentForm.TransparencyKey


        MyBase.OnPaint(e)

        If _minimBool Then
            Controls.Add(minimBtn)
        Else
            Controls.Remove(minimBtn)
        End If

        minimBtn.Location = New Point(Width - 60, 0)
        closeBtn.Location = New Point(Width - 40, 0)


        G.Clear(Color.FromArgb(43, 53, 63))
        '---- Sides--
       Dim LGBunderGrdrect As Rectangle = New Rectangle(1, Header, Width, 130)
        Dim LGBunderGrd As New LinearGradientBrush(LGBunderGrdrect, Color.FromArgb(43, 53, 63), Color.FromArgb(70, 79, 85), 90)
        G.FillRectangle(LGBunderGrd, LGBunderGrdrect)


        If _Color2 Then
            Dim BTNLGBOver As New LinearGradientBrush(New Rectangle(2, 1, Width - 3, Header / 2), Color.FromArgb(20, 30, 40), Color.FromArgb(135, Color.White), 360)
            G.FillRectangle(BTNLGBOver, New Rectangle(2, 1, Width - 3, Header / 2))
            Dim BTNLGB1 As New LinearGradientBrush(New Rectangle(-1, 1, Width, Header / 2), Color.FromArgb(100, Color.White), Color.FromArgb(20, 30, 40), 360)
            G.FillRectangle(BTNLGB1, New Rectangle(-1, 1, Width / 2, Header / 2))
            Dim txtbrushCL2 As Brush = New SolidBrush(Color.FromArgb(250, 250, 250))
            G.DrawString(Text, Font, txtbrushCL2, New Rectangle(16, 6, Width - 1, 22), New StringFormat With {.LineAlignment = StringAlignment.Near, .Alignment = StringAlignment.Near})
        Else
            Dim BTNLGBOver As New LinearGradientBrush(New Rectangle(2, 1, Width - 3, Header / 2), Color.FromArgb(35, 45, 55), Color.FromArgb(155, Color.White), 180)
            G.FillRectangle(BTNLGBOver, New Rectangle(2, 1, Width - 3, Header / 2))
            Dim BTNLGB1 As New LinearGradientBrush(New Rectangle(-1, 1, Width, Header / 2), Color.FromArgb(120, Color.White), Color.FromArgb(35, 45, 55), 180)
            G.FillRectangle(BTNLGB1, New Rectangle(-1, 1, Width / 2, Header / 2))
            Dim txtbrush As Brush = New SolidBrush(Color.FromArgb(210, 220, 230))
            G.DrawString(Text, Font, txtbrush, New Rectangle(16, 7, Width - 1, 22), New StringFormat With {.LineAlignment = StringAlignment.Near, .Alignment = StringAlignment.Near})
        End If





        Dim InerRecLGB As Rectangle = New Rectangle(11, 28, Width - 22, Height - 37)
        Dim InnerRecLGB As New LinearGradientBrush(InerRecLGB, Color.FromArgb(57, 67, 77), Color.FromArgb(60, 69, 75), 90)
        G.FillRectangle(InnerRecLGB, InerRecLGB)

        '----- InnerRect
       Dim P1 As Pen = New Pen(New SolidBrush(Color.FromArgb(23, 33, 43)))
        G.DrawRectangle(P1, 12, 29, Width - 25, Height - 40)
        Dim P2 As Pen = New Pen(New SolidBrush(Color.FromArgb(93, 103, 113)))
        G.DrawRectangle(P2, 11, 28, Width - 23, Height - 38)



        Dim LGBunderGrd3 As New LinearGradientBrush(New Rectangle(0, Height - 9, Width \ 2, 50), Color.FromArgb(40, 50, 60), Color.FromArgb(50, Color.White), 360)
        G.FillRectangle(LGBunderGrd3, 0, Height - 9, Width \ 2, 50)
        Dim LGBunderGrd2 As New LinearGradientBrush(New Rectangle(Width \ 2, Height - 9, Width \ 2, Height), Color.FromArgb(40, 50, 60), Color.FromArgb(50, Color.White), 180)
        G.FillRectangle(LGBunderGrd2, Width \ 2, Height - 9, Width \ 2, Height)
        G.DrawLine(New Pen(Color.FromArgb(90, 90, 90)), Width \ 2, Height - 9, Width \ 2, Height)

        G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(137, 147, 157))), 1, 1, Width - 3, Height - 3)

        Dim ClientRectangle As New Rectangle(0, 0, Width - 1, Height - 1)
        G.DrawPath(Pens.Black, RoundRect(ClientRectangle, 0, 0, 0, 0))

        G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(163, 173, 183))), 2, 1, Width - 3, 1)
        e.Graphics.DrawImage(bmp.Clone, 0, 0)
        bmp.Dispose()
        G.Dispose()

    End Sub

End Class

Class SharpTopButton
    Inherits Control
#Region " Control Help - MouseState & Flicker Control"
    Enum MouseState As Byte
        None = 0
        Over = 1
        Down = 2
        Block = 3
    End Enum
    Private State As MouseState
    Dim X As Integer

    Protected Overrides Sub OnMouseEnter(ByVal e As System.EventArgs)
        MyBase.OnMouseEnter(e)
        State = MouseState.Over
        Invalidate()
    End Sub
    Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
        MyBase.OnMouseDown(e)
        State = MouseState.Down
        Invalidate()
    End Sub
    Protected Overrides Sub OnMouseLeave(ByVal e As System.EventArgs)
        MyBase.OnMouseLeave(e)
        State = MouseState.None
        Invalidate()
    End Sub
    Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
        MyBase.OnMouseUp(e)
        State = MouseState.Over
        Invalidate()
    End Sub
    Protected Overrides Sub OnPaintBackground(ByVal pevent As System.Windows.Forms.PaintEventArgs)
    End Sub
    Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
        MyBase.OnTextChanged(e)
        Invalidate()
    End Sub
    Protected Overrides Sub OnMouseMove(ByVal e As System.Windows.Forms.MouseEventArgs)
        MyBase.OnMouseMove(e)
        X = e.X
        Invalidate()
    End Sub

#End Region
    Enum TxtState As Byte
        Close = 1
        Minim = 2
    End Enum
    Private BtnTxt As TxtState
    Public Property TopButtonTXT() As TxtState
        Get
            Return BtnTxt
        End Get
        Set(ByVal v As TxtState)
            BtnTxt = v
            Invalidate()
        End Set
    End Property
    Sub New()
        MyBase.New()
        BackColor = Color.FromArgb(38, 38, 38)
        Font = New Font("Verdana", 8.25F)
        Size = New Size(30, 20)

        DoubleBuffered = True
        Focus()
    End Sub

    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        Dim bmp As New Bitmap(Width, Height)
        Dim G As Graphics = Graphics.FromImage(bmp)
        MyBase.OnPaint(e)


        Select Case State
            Case MouseState.Over

                If BtnTxt = TxtState.Close Then
                    G.Clear(Color.FromArgb(170, 18, 32))
                    Dim LGBOver As New LinearGradientBrush(New Rectangle(2, 1, Width - 3, Height / 2 - 2), Color.FromArgb(170, 18, 32), Color.FromArgb(147, 156, 162), 360)
                    G.FillRectangle(LGBOver, New Rectangle(2, 1, Width - 3, Height / 2 - 2))
                    Dim LGBOver1 As New LinearGradientBrush(New Rectangle(0, 1, Width - 2, Height / 2 - 2), Color.FromArgb(147, 156, 162), Color.FromArgb(170, 18, 32), 360)
                    G.FillRectangle(LGBOver1, New Rectangle(0, 1, Width / 2, Height / 2 - 2))

                    G.SmoothingMode = SmoothingMode.HighQuality

                    '----- Borders -----
                   G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(39, 49, 59))), New Rectangle(0, 0, Width - 1, Height - 1))
                    Dim InnerRect As New LinearGradientBrush(New Rectangle(1, 1, Width - 3, Height - 2), Color.FromArgb(159, 169, 179), Color.FromArgb(90, 90, 90), 90)
                    G.DrawRectangle(New Pen(InnerRect), New Rectangle(1, 1, Width - 3, Height - 3))
                    G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(123, 133, 143))), 1, Height - 2, Width - 2, Height - 2)

                ElseIf BtnTxt = TxtState.Minim Then
                    G.Clear(Color.FromArgb(0, 102, 175))
                    Dim LGBOver As New LinearGradientBrush(New Rectangle(2, 1, Width - 3, Height / 2 - 2), Color.FromArgb(0, 102, 175), Color.FromArgb(157, 166, 172), 360)
                    G.FillRectangle(LGBOver, New Rectangle(2, 1, Width - 3, Height / 2 - 2))
                    Dim LGBOver1 As New LinearGradientBrush(New Rectangle(0, 1, Width - 2, Height / 2 - 2), Color.FromArgb(157, 166, 172), Color.FromArgb(0, 102, 175), 360)
                    G.FillRectangle(LGBOver1, New Rectangle(0, 1, Width / 2, Height / 2 - 2))

                    G.SmoothingMode = SmoothingMode.HighQuality

                    '----- Borders -----
                   G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(39, 49, 59))), New Rectangle(0, 0, Width - 1, Height - 1))
                    Dim InnerRect As New LinearGradientBrush(New Rectangle(1, 1, Width - 3, Height - 2), Color.FromArgb(159, 169, 179), Color.FromArgb(90, 90, 90), 90)
                    G.DrawRectangle(New Pen(InnerRect), New Rectangle(1, 1, Width - 3, Height - 3))
                    G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(123, 133, 143))), 1, Height - 2, Width - 2, Height - 2)

                End If
            Case MouseState.None

                If BtnTxt = TxtState.Close Then
                    G.Clear(Color.FromArgb(140, 18, 32))
                    Dim LGBOver As New LinearGradientBrush(New Rectangle(2, 1, Width - 3, Height / 2 - 2), Color.FromArgb(140, 18, 32), Color.FromArgb(117, 126, 132), 360)
                    G.FillRectangle(LGBOver, New Rectangle(2, 1, Width - 3, Height / 2 - 2))
                    Dim LGBOver1 As New LinearGradientBrush(New Rectangle(0, 1, Width - 2, Height / 2 - 2), Color.FromArgb(117, 126, 132), Color.FromArgb(140, 18, 32), 360)
                    G.FillRectangle(LGBOver1, New Rectangle(0, 1, Width / 2, Height / 2 - 2))

                    G.SmoothingMode = SmoothingMode.HighQuality

                    '----- Borders -----
                   G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(33, 43, 53))), New Rectangle(0, 0, Width - 1, Height - 1))
                    Dim InnerRect As New LinearGradientBrush(New Rectangle(1, 1, Width - 3, Height - 2), Color.FromArgb(153, 163, 173), Color.FromArgb(85, 85, 85), 90)
                    G.DrawRectangle(New Pen(InnerRect), New Rectangle(1, 1, Width - 3, Height - 3))
                    G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(103, 113, 123))), 1, Height - 2, Width - 2, Height - 2)

                ElseIf BtnTxt = TxtState.Minim Then
                    G.Clear(Color.FromArgb(0, 102, 156))
                    Dim LGBOver As New LinearGradientBrush(New Rectangle(2, 1, Width - 3, Height / 2 - 2), Color.FromArgb(0, 102, 156), Color.FromArgb(117, 126, 132), 360)
                    G.FillRectangle(LGBOver, New Rectangle(2, 1, Width - 3, Height / 2 - 2))
                    Dim LGBOver1 As New LinearGradientBrush(New Rectangle(0, 1, Width - 2, Height / 2 - 2), Color.FromArgb(117, 126, 132), Color.FromArgb(0, 102, 156), 360)
                    G.FillRectangle(LGBOver1, New Rectangle(0, 1, Width / 2, Height / 2 - 2))

                    G.SmoothingMode = SmoothingMode.HighQuality

                    '----- Borders -----
                   G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(33, 43, 53))), New Rectangle(0, 0, Width - 1, Height - 1))
                    Dim InnerRect As New LinearGradientBrush(New Rectangle(1, 1, Width - 3, Height - 2), Color.FromArgb(153, 163, 173), Color.FromArgb(85, 85, 85), 90)
                    G.DrawRectangle(New Pen(InnerRect), New Rectangle(1, 1, Width - 3, Height - 3))
                    G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(103, 113, 123))), 1, Height - 2, Width - 2, Height - 2)

                End If
            Case MouseState.Down
                If BtnTxt = TxtState.Close Then
                    G.Clear(Color.FromArgb(130, 18, 32))
                    Dim LGBOver As New LinearGradientBrush(New Rectangle(2, 1, Width - 3, Height / 2 - 2), Color.FromArgb(130, 18, 32), Color.FromArgb(117, 126, 132), 360)
                    G.FillRectangle(LGBOver, New Rectangle(2, 1, Width - 3, Height / 2 - 2))
                    Dim LGBOver1 As New LinearGradientBrush(New Rectangle(0, 1, Width - 2, Height / 2 - 2), Color.FromArgb(117, 126, 132), Color.FromArgb(130, 18, 32), 360)
                    G.FillRectangle(LGBOver1, New Rectangle(0, 1, Width / 2, Height / 2 - 2))

                    G.SmoothingMode = SmoothingMode.HighQuality
                    '----- Borders -----
                   G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(30, 40, 50))), New Rectangle(0, 0, Width - 1, Height - 1))
                    Dim InnerRect As New LinearGradientBrush(New Rectangle(1, 1, Width - 3, Height - 2), Color.FromArgb(151, 161, 171), Color.FromArgb(83, 83, 83), 90)
                    G.DrawRectangle(New Pen(InnerRect), New Rectangle(1, 1, Width - 3, Height - 3))
                    G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(97, 107, 117))), 1, Height - 2, Width - 2, Height - 2)

                ElseIf BtnTxt = TxtState.Minim Then
                    G.Clear(Color.FromArgb(0, 102, 146))
                    Dim LGBOver As New LinearGradientBrush(New Rectangle(2, 1, Width - 3, Height / 2 - 2), Color.FromArgb(0, 102, 154), Color.FromArgb(132, 141, 147), 360)
                    G.FillRectangle(LGBOver, New Rectangle(2, 1, Width - 3, Height / 2 - 2))
                    Dim LGBOver1 As New LinearGradientBrush(New Rectangle(0, 1, Width - 2, Height / 2 - 2), Color.FromArgb(132, 141, 147), Color.FromArgb(0, 102, 154), 360)
                    G.FillRectangle(LGBOver1, New Rectangle(0, 1, Width / 2, Height / 2 - 2))

                    G.SmoothingMode = SmoothingMode.HighQuality

                    '----- Borders -----
                   G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(37, 47, 57))), New Rectangle(0, 0, Width - 1, Height - 1))
                    Dim InnerRect1 As New LinearGradientBrush(New Rectangle(1, 1, Width - 3, Height - 3), Color.FromArgb(150, 150, 150), Color.FromArgb(127, 137, 147), 90S)
                    G.DrawRectangle(New Pen(InnerRect1), New Rectangle(1, 1, Width - 3, Height - 3))
                End If

        End Select
        Select Case BtnTxt
            Case TxtState.Close
                Size = New Size(30, 20)
                G.DrawString("r", New Font("Marlett", 8.75), New SolidBrush(Color.FromArgb(220, Color.White)), New Rectangle(0, 1, Width - 1, Height - 1), New StringFormat() With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center})
            Case TxtState.Minim
                Size = New Size(25, 20)
                G.DrawString("0", New Font("Marlett", 12), New SolidBrush(Color.FromArgb(220, Color.White)), New Rectangle(1, -1, Width - 1, Height - 1), New StringFormat() With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center})
        End Select

        '  G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(40, 40, 40))), 0, 0, 29, 19)

        e.Graphics.DrawImage(bmp.Clone(), 0, 0)
        G.Dispose() : bmp.Dispose()
    End Sub

End Class

Class SharpGroupBOx
    Inherits ContainerControl
#Region " Control Help - Properties & Flicker Control"
    Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
        MyBase.OnTextChanged(e)
        Invalidate()
    End Sub
#End Region
    Sub New()
        MyBase.New()
        Size = New Size(200, 100)
        SetStyle(ControlStyles.UserPaint Or ControlStyles.SupportsTransparentBackColor, True)
        'BackColor = Color.Transparent
       DoubleBuffered = True
        ForeColor = Color.FromArgb(210, 220, 230)
    End Sub
    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        Dim bmp As New Bitmap(Width, Height)
        Dim G As Graphics = Graphics.FromImage(bmp)

        MyBase.OnPaint(e)
        G.SmoothingMode = SmoothingMode.HighQuality

        G.Clear(Color.FromArgb(43, 53, 63))

        Dim s2 As New LinearGradientBrush(New Rectangle(0, 2, Width - 3, 25), Color.FromArgb(35, 45, 55), Color.FromArgb(50, Color.White), 90S)
        G.FillRectangle(s2, New Rectangle(1, 14, Width - 3, 13))
        Dim s1 As New LinearGradientBrush(New Rectangle(0, 2, Width - 3, 25), Color.FromArgb(90, Color.White), Color.FromArgb(35, 45, 55), 90S)
        G.FillRectangle(s1, New Rectangle(1, 1, Width - 3, 13))


        G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(30, 40, 50))), 0, 0, Width - 1, 28)
        G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(111, 121, 131))), 1, 1, Width - 3, 26)
        G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(30, 40, 50))), 0, 30, Width - 1, Height - 31)
        G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(60, 70, 80))), 1, 31, Width - 3, Height - 33)

        G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(30, 30, 30))), New Rectangle(0, 0, Width - 1, Height - 1))
        G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(20, 30, 40))), 1, 29, Width - 2, 29)

        G.DrawString(Text, Font, New SolidBrush(ForeColor), New Rectangle(1, 4, Width, 20), New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Center})

        e.Graphics.DrawImage(bmp.Clone(), 0, 0)
        G.Dispose() : bmp.Dispose()
    End Sub
End Class

Class SharpProgreSsBar
    Inherits Control
    Private GlowAnimation As Timer = New Timer
    'Private _GlowColor As Color = Color.FromArgb(55, 65, 75)
   Private _GlowColor As Color = Color.FromArgb(50, 255, 255, 255)
    Private _Animate As Boolean = True
    Private _Value As Int32 = 0
    Private _HighlightColor As Color = Color.Silver
    Private _BackgroundColor As Color = Color.FromArgb(150, 150, 150)
    Private _StartColor As Color = Color.FromArgb(110, 110, 110)
#Region "Properties"
    Public Property Color() As Color
        Get
            Return _StartColor
        End Get
        Set(ByVal value As Color)
            _StartColor = value
            Me.Invalidate()
        End Set
    End Property
    Public Property Animate() As Boolean
        Get
            Return _Animate
        End Get
        Set(ByVal value As Boolean)
            _Animate = value
            If value = True Then
                GlowAnimation.Start()
            Else
                GlowAnimation.Stop()
            End If
            Me.Invalidate()
        End Set
    End Property
    Public Property GlowColor() As Color
        Get
            Return _GlowColor
        End Get
        Set(ByVal value As Color)
            _GlowColor = value
            Me.Invalidate()
        End Set
    End Property
    Public Property Value() As Int32
        Get
            Return _Value
        End Get
        Set(ByVal value As Int32)
            If value < 0 Then Return
            _Value = value
            If value < 100 Then GlowAnimation.Start()

            Me.Invalidate()
        End Set
    End Property
    Public Property BackgroundColor() As Color
        Get
            Return _BackgroundColor
        End Get
        Set(ByVal value As Color)
            _BackgroundColor = value
            Me.Invalidate()
        End Set
    End Property
    Public Property HighlightColor() As Color
        Get
            Return _HighlightColor
        End Get
        Set(ByVal value As Color)
            _HighlightColor = value
            Me.Invalidate()
        End Set
    End Property

#End Region
    Private Function InDesignMode() As Boolean
        Return (LicenseManager.UsageMode = LicenseUsageMode.Designtime)
    End Function
    Sub New()
        MyBase.New()
        DoubleBuffered = True
        SetStyle(ControlStyles.UserPaint Or ControlStyles.SupportsTransparentBackColor, True)

        If Not InDesignMode() Then
            GlowAnimation.Interval = 15
            If Value < 100 Then GlowAnimation.Start()

            AddHandler GlowAnimation.Tick, AddressOf GlowAnimation_Tick
        End If
    End Sub
    Private _mGlowPosition As Integer = -100

    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        Dim B As New Bitmap(Width, Height)
        Dim G As Graphics = Graphics.FromImage(B)
        G.SmoothingMode = SmoothingMode.HighQuality

        G.Clear(Color.FromArgb(43, 53, 63))
        '   -------------------Draw Background for the MBProgressBar--------------------

        Dim s2 As New LinearGradientBrush(New Rectangle(0, 2, Width - 3, 50), Color.FromArgb(35, 45, 55), Color.FromArgb(50, Color.White), 90S)

        Dim s1 As New LinearGradientBrush(New Rectangle(0, 2, Width - 3, 50), Color.FromArgb(75, Color.White), Color.FromArgb(35, 45, 55), 90)

        Dim BackRectangle As Rectangle = Me.ClientRectangle
        BackRectangle.Width = BackRectangle.Width - 1
        BackRectangle.Height = BackRectangle.Height - 1
        Dim GrafP As GraphicsPath = RoundRect(BackRectangle, 2, 2, 2, 2)
        G.FillPath(s1, GrafP)


        '--------------------Draw Background Shadows for MBProgrssBar------------------
       Dim BGSH As Rectangle = New Rectangle(2, 2, 10, Me.Height - 5)
        Dim LGBS As LinearGradientBrush = New LinearGradientBrush(BGSH, Color.FromArgb(70, 80, 90), Color.FromArgb(95, 105, 115), LinearGradientMode.Horizontal)
        G.FillRectangle(LGBS, BGSH)
        Dim BGSRectangle As Rectangle = New Rectangle(Me.Width - 12, 2, 10, Me.Height - 5)
        Dim LG As LinearGradientBrush = New LinearGradientBrush(BGSRectangle, Color.FromArgb(80, 90, 100), Color.FromArgb(75, 85, 95), LinearGradientMode.Horizontal)
        G.FillRectangle(LG, BGSRectangle)


        '----------------------Draw MBProgressBar-------------------- 
       Dim ProgressRect As Rectangle = New Rectangle(1, 2, Me.Width - 3, Me.Height - 3)
        ProgressRect.Width = CInt((Value * 1.0F / (100) * Me.Width))
        G.FillRectangle(s2, ProgressRect)


        '----------------------Draw Shadows for MBProgressBar------------------
       Dim SHRect As Rectangle = New Rectangle(1, 2, 15, Me.Height - 3)
        Dim LGSHP As LinearGradientBrush = New LinearGradientBrush(SHRect, Color.Black, Color.Black, LinearGradientMode.Horizontal)

        Dim BColor As ColorBlend = New ColorBlend(3)
        BColor.Colors = New Color() {Color.Gray, Color.FromArgb(40, 0, 0, 0), Color.Transparent}
        BColor.Positions = New Single() {0.0F, 0.2F, 1.0F}
        LGSHP.InterpolationColors = BColor

        SHRect.X = SHRect.X - 1
        G.FillRectangle(LGSHP, SHRect)

        Dim Rect1 As Rectangle = New Rectangle(Me.Width - 3, 2, 15, Me.Height - 3)
        Rect1.X = CInt((Value * 1.0F / (100) * Me.Width) - 14)
        Dim LGSH1 As LinearGradientBrush = New LinearGradientBrush(Rect1, Color.Black, Color.Black, LinearGradientMode.Horizontal)

        Dim BColor1 As ColorBlend = New ColorBlend(3)
        BColor1.Colors = New Color() {Color.Transparent, Color.FromArgb(70, 0, 0, 0), Color.Transparent}
        BColor1.Positions = New Single() {0.0F, 0.8F, 1.0F}
        LGSH1.InterpolationColors = BColor1

        G.FillRectangle(LGSH1, Rect1)


        '-------------------------Draw Highlight for MBProgressBar-----------------
       Dim HLRect As Rectangle = New Rectangle(1, 1, Me.Width - 1, 6)
        Dim HLGPa As GraphicsPath = RoundRect(HLRect, 2, 2, 0, 0)
        'G.SetClip(HLGPa)
       Dim HLGBS As LinearGradientBrush = New LinearGradientBrush(HLRect, Color.FromArgb(190, 190, 190), Color.FromArgb(150, 150, 150), LinearGradientMode.Vertical)
        G.FillPath(HLGBS, HLGPa)
        G.ResetClip()
        Dim HLrect2 As Rectangle = New Rectangle(1, Me.Height - 8, Me.Width - 1, 6)
        Dim bp1 As GraphicsPath = RoundRect(HLrect2, 0, 0, 2, 2)
        ' G.SetClip(bp1)
       Dim bg1 As LinearGradientBrush = New LinearGradientBrush(HLrect2, Color.Transparent, Color.FromArgb(150, Me.HighlightColor), LinearGradientMode.Vertical)
        G.FillPath(bg1, bp1)
        G.ResetClip()


        '--------------------Draw Inner Sroke for MBProgressBar--------------
       Dim Rect20 As Rectangle = Me.ClientRectangle
        Rect20.X = Rect20.X + 1
        Rect20.Y = Rect20.Y + 1
        Rect20.Width -= 3
        Rect20.Height -= 3
        Dim Rect15 As GraphicsPath = RoundRect(Rect20, 2, 2, 2, 2)
        G.DrawPath(New Pen(Color.FromArgb(55, 65, 75)), Rect15)

        '-----------------------Draw Outer Stroke on the Control----------------------------
       Dim StrokeRect As Rectangle = Me.ClientRectangle
        StrokeRect.Width = StrokeRect.Width - 1
        StrokeRect.Height = StrokeRect.Height - 1
        Dim GGH As GraphicsPath = RoundRect(StrokeRect, 2, 2, 2, 2)
        G.DrawPath(New Pen(Color.FromArgb(122, 122, 122)), GGH)

        '------------------------Draw Glow for MBProgressBar-----------------------
       Dim GlowRect As Rectangle = New Rectangle(_mGlowPosition, 6, 60, 60)
        Dim GlowLGBS As LinearGradientBrush = New LinearGradientBrush(GlowRect, Color.FromArgb(127, 137, 147), Color.FromArgb(75, 85, 95), LinearGradientMode.Horizontal)
        Dim BColor3 As ColorBlend = New ColorBlend(4)
        BColor3.Colors = New Color() {Color.Transparent, Me.GlowColor, Me.GlowColor, Color.Transparent}
        BColor3.Positions = New Single() {0.0F, 0.5F, 0.6F, 1.0F}
        GlowLGBS.InterpolationColors = BColor3
        Dim clip As Rectangle = New Rectangle(1, 2, Me.Width - 3, Me.Height - 3)
        clip.Width = CInt((Value * 1.0F / (100) * Me.Width))
        G.SetClip(clip)
        G.FillRectangle(GlowLGBS, GlowRect)
        G.ResetClip()

        e.Graphics.DrawImage(B.Clone(), 0, 0)
        G.Dispose() : B.Dispose()
    End Sub

    Private Function RoundRect(ByVal r As RectangleF, ByVal r1 As Single, ByVal r2 As Single, ByVal r3 As Single, ByVal r4 As Single) As GraphicsPath
        Dim x As Single = r.X, y As Single = r.Y, w As Single = r.Width, h As Single = r.Height
        Dim rr5 As GraphicsPath = New GraphicsPath
        rr5.AddBezier(x, y + r1, x, y, x + r1, y, x + r1, y)
        rr5.AddLine(x + r1, y, x + w - r2, y)
        rr5.AddBezier(x + w - r2, y, x + w, y, x + w, y + r2, x + w, y + r2)
        rr5.AddLine(x + w, y + r2, x + w, y + h - r3)
        rr5.AddBezier(x + w, y + h - r3, x + w, y + h, x + w - r3, y + h, x + w - r3, y + h)
        rr5.AddLine(x + w - r3, y + h, x + r4, y + h)
        rr5.AddBezier(x + r4, y + h, x, y + h, x, y + h - r4, x, y + h - r4)
        rr5.AddLine(x, y + h - r4, x, y + r1)
        Return rr5
    End Function
    Private Sub GlowAnimation_Tick(ByVal sender As Object, ByVal e As EventArgs)
        If Me.Animate Then
            _mGlowPosition += 4
            If _mGlowPosition > Me.Width Then
                _mGlowPosition = -10
                Me.Invalidate()
            End If

        Else

            GlowAnimation.Stop()

            _mGlowPosition = -50
        End If
    End Sub

End Class

Class SharpTextBox : Inherits Control
    Dim WithEvents txtbox As New TextBox

#Region " Control Help - Properties & Flicker Control "
    Private _passmask As Boolean = False
    Public Shadows Property UseSystemPasswordChar() As Boolean
        Get
            Return _passmask
        End Get
        Set(ByVal v As Boolean)
            txtbox.UseSystemPasswordChar = UseSystemPasswordChar
            _passmask = v
            Invalidate()
        End Set
    End Property
    Private _maxchars As Integer = 32767
    Public Shadows Property MaxLength() As Integer
        Get
            Return _maxchars
        End Get
        Set(ByVal v As Integer)
            _maxchars = v
            txtbox.MaxLength = MaxLength
            Invalidate()
        End Set
    End Property
    Private _align As HorizontalAlignment
    Public Shadows Property TextAlignment() As HorizontalAlignment
        Get
            Return _align
        End Get
        Set(ByVal v As HorizontalAlignment)
            _align = v
            Invalidate()
        End Set
    End Property

    Protected Overrides Sub OnPaintBackground(ByVal pevent As System.Windows.Forms.PaintEventArgs)
    End Sub
    Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
        MyBase.OnTextChanged(e)
        Invalidate()
    End Sub
    Protected Overrides Sub OnBackColorChanged(ByVal e As System.EventArgs)
        MyBase.OnBackColorChanged(e)
        txtbox.BackColor = BackColor
        Invalidate()
    End Sub
    Protected Overrides Sub OnForeColorChanged(ByVal e As System.EventArgs)
        MyBase.OnForeColorChanged(e)
        txtbox.ForeColor = ForeColor
        Invalidate()
    End Sub
    Protected Overrides Sub OnFontChanged(ByVal e As System.EventArgs)
        MyBase.OnFontChanged(e)
        txtbox.Font = Font
    End Sub
    Protected Overrides Sub OnGotFocus(ByVal e As System.EventArgs)
        MyBase.OnGotFocus(e)
        txtbox.Focus()
    End Sub
    Sub TextChngTxtBox() Handles txtbox.TextChanged
        Text = txtbox.Text
    End Sub
    Sub TextChng() Handles MyBase.TextChanged
        txtbox.Text = Text
    End Sub
    Sub NewTextBox()
        With txtbox
            .Multiline = False
            .BackColor = Color.FromArgb(43, 43, 43)
            .ForeColor = ForeColor
            .Text = String.Empty
            .TextAlign = HorizontalAlignment.Center
            .BorderStyle = BorderStyle.None
            .Location = New Point(5, 5)
            .Font = New Font("Verdana", 8)
            .Size = New Size(Width - 10, Height - 11)
            .UseSystemPasswordChar = UseSystemPasswordChar
        End With

    End Sub
#End Region

    Sub New()
        MyBase.New()
        NewTextBox()
        Controls.Add(txtbox)
        Text = ""
        BackColor = Color.FromArgb(35, 45, 55)
        ForeColor = Color.FromArgb(162, 172, 182)
        Size = New Size(135, 35)
        DoubleBuffered = True
    End Sub

    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        Dim B As New Bitmap(Width, Height)
        Dim G As Graphics = Graphics.FromImage(B)
        G.SmoothingMode = SmoothingMode.HighQuality
        MyBase.OnPaint(e)

        Height = txtbox.Height + 11
        With txtbox
            .Width = Width - 10
            .TextAlign = TextAlignment
            .UseSystemPasswordChar = UseSystemPasswordChar
        End With

        G.Clear(Color.FromArgb(35, 45, 55))
        Dim txtRect As New Rectangle(0, 0, Width - 1, Height - 1)
        Dim InnerRect As New LinearGradientBrush(txtRect, Color.FromArgb(74, 84, 94), Color.FromArgb(94, 104, 114), 90S)

        G.DrawRectangle(New Pen(Color.FromArgb(12, 22, 32), 2), txtRect)
        G.DrawLine(New Pen(InnerRect), Width - 1, 0, Width - 1, Height)
        G.DrawLine(New Pen(InnerRect), 0, Height - 1, Width - 1, Height - 1)


        e.Graphics.DrawImage(B.Clone(), 0, 0)
        G.Dispose() : B.Dispose()
    End Sub

End Class

Class SharpCheckBox : Inherits Control
  
#Region " Control Help - MouseState & Flicker Control"
    Private State As MouseState = MouseState.None
    Protected Overrides Sub OnMouseEnter(ByVal e As System.EventArgs)
        MyBase.OnMouseEnter(e)
        State = MouseState.Over
        Invalidate()
    End Sub
    Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
        MyBase.OnMouseDown(e)
        State = MouseState.Down
        Invalidate()
    End Sub
    Protected Overrides Sub OnMouseLeave(ByVal e As System.EventArgs)
        MyBase.OnMouseLeave(e)
        State = MouseState.None
        Invalidate()
    End Sub
    Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
        MyBase.OnMouseUp(e)
        State = MouseState.Over
        Invalidate()
    End Sub
    Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
        MyBase.OnTextChanged(e)
        Invalidate()
    End Sub
    Private _Checked As Boolean
    Property Checked() As Boolean
        Get
            Return _Checked
        End Get
        Set(ByVal value As Boolean)
            _Checked = value
            Invalidate()
        End Set
    End Property

    Protected Overrides Sub OnClick(ByVal e As System.EventArgs)
        _Checked = Not _Checked
        RaiseEvent CheckedChanged(Me)
        MyBase.OnClick(e)
    End Sub
    Event CheckedChanged(ByVal sender As Object)
    Protected Overrides Sub OnResize(ByVal e As System.EventArgs)
        MyBase.OnResize(e)
        Height = 18
    End Sub
#End Region

    Sub New()
        MyBase.New()
        SetStyle(ControlStyles.UserPaint Or ControlStyles.SupportsTransparentBackColor, True)
        BackColor = Color.Transparent
        Size = New Size(145, 16)
        ForeColor = Color.FromArgb(210, 210, 222)
        DoubleBuffered = True
        Font = New Font("Verdana", 8)
    End Sub

    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        Dim B As New Bitmap(Width, Height)
        Dim G As Graphics = Graphics.FromImage(B)

        MyBase.OnPaint(e)
        G.SmoothingMode = SmoothingMode.HighQuality
        G.Clear(BackColor)
        If Checked = False Then
            Dim BTNLGBOver As New LinearGradientBrush(New Rectangle(3, 3, 12, 11), Color.FromArgb(37, 47, 57), Color.FromArgb(62, 68, 74), 90)
            G.FillRectangle(BTNLGBOver, New Rectangle(3, 3, 12, 11))


        Else

            Dim BTNLGBOver As New LinearGradientBrush(New Rectangle(3, 3, 12, 11), Color.FromArgb(73, 83, 93), Color.FromArgb(40, 50, 60), 90)
            G.FillRectangle(BTNLGBOver, New Rectangle(3, 3, 12, 11))

            Dim chkRec12 As New Rectangle(3, 2, Height - 5, Height - 6)
            Dim chkPoly As Rectangle = New Rectangle(chkRec12.X + chkRec12.Width / 4, chkRec12.Y + chkRec12.Height / 4, chkRec12.Width \ 2, chkRec12.Height \ 2)
            Dim Poly() As Point = {New Point(chkPoly.X, chkPoly.Y + chkPoly.Height \ 2), _
                           New Point(chkPoly.X + chkPoly.Width \ 2, chkPoly.Y + chkPoly.Height), _
                           New Point(chkPoly.X + chkPoly.Width, chkPoly.Y)}

            Dim P1 As Pen = New Pen((Color.White), 2)

            For i = 0 To Poly.Length - 2
                G.DrawLine(P1, Poly(i), Poly(i + 1))
            Next


        End If
        G.DrawRectangle(New Pen(Color.FromArgb(93, 103, 113)), 1, 1, 16, 15)
        G.DrawRectangle(New Pen(Color.FromArgb(13, 23, 33)), 2, 2, 14, 13)
        G.DrawRectangle(New Pen(Color.FromArgb(113, 123, 133)), 3, 3, 12, 11)
        Dim txtbrush As Brush = New SolidBrush(Color.FromArgb(210, 220, 230))
        G.DrawString(Text, Font, txtbrush, New Point(18, 2), New StringFormat With {.LineAlignment = StringAlignment.Near, .Alignment = StringAlignment.Near})

        e.Graphics.DrawImage(B.Clone(), 0, 0)
        G.Dispose() : B.Dispose()
    End Sub
End Class

Class SharpRadioButton : Inherits Control
#Region " Control Help - MouseState & Flicker Control"

    Enum MouseState As Byte
        None = 0
        Over = 1
        Down = 2
        Block = 3
    End Enum
    Private State As MouseState = MouseState.None
    Protected Overrides Sub OnMouseEnter(ByVal e As System.EventArgs)
        MyBase.OnMouseEnter(e)
        State = MouseState.Over
        Invalidate()
    End Sub
    Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
        MyBase.OnMouseDown(e)
        State = MouseState.Down
        Invalidate()
    End Sub
    Protected Overrides Sub OnMouseLeave(ByVal e As System.EventArgs)
        MyBase.OnMouseLeave(e)
        State = MouseState.None
        Invalidate()
    End Sub
    Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
        MyBase.OnMouseUp(e)
        State = MouseState.Over
        Invalidate()
    End Sub
    Protected Overrides Sub OnResize(ByVal e As System.EventArgs)
        MyBase.OnResize(e)
        Height = 16
    End Sub
    Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
        MyBase.OnTextChanged(e)
        Invalidate()
    End Sub
    Private _Checked As Boolean
    Property Checked() As Boolean
        Get
            Return _Checked
        End Get
        Set(ByVal value As Boolean)
            _Checked = value
            InvalidateControls()
            RaiseEvent CheckedChanged(Me)
            Invalidate()
        End Set
    End Property
    Protected Overrides Sub OnClick(ByVal e As EventArgs)
        If Not _Checked Then Checked = True
        MyBase.OnClick(e)
    End Sub
    Event CheckedChanged(ByVal sender As Object)
    Protected Overrides Sub OnCreateControl()
        MyBase.OnCreateControl()
        InvalidateControls()
    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 SharpRadioButton Then
                DirectCast(C, SharpRadioButton).Checked = False
            End If
        Next
    End Sub
#End Region
    Sub New()
        MyBase.New()
        SetStyle(ControlStyles.UserPaint Or ControlStyles.SupportsTransparentBackColor, True)
        BackColor = Color.Transparent
        Size = New Size(150, 16)
        ForeColor = Color.FromArgb(210, 210, 222)
        DoubleBuffered = True
        Font = New Font("Verdana", 8)
    End Sub
    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        Dim B As New Bitmap(Width, Height)
        Dim G As Graphics = Graphics.FromImage(B)

        G.SmoothingMode = SmoothingMode.HighQuality

        MyBase.OnPaint(e)

        G.Clear(BackColor)


        If Checked = False Then
            Dim BTNLGBOver As New LinearGradientBrush(New Rectangle(3, 3, 12, 11), Color.FromArgb(37, 47, 57), Color.FromArgb(62, 68, 74), 90)
            G.FillEllipse(BTNLGBOver, New Rectangle(3, 3, 12, 11))
            G.DrawEllipse(New Pen(Color.FromArgb(0, 0, 0)), 2, 2, 14, 13)
        Else

            Dim CKelGrd As New LinearGradientBrush(New Rectangle(3, 3, 12, 11), Color.FromArgb(65, 71, 77), Color.FromArgb(0, 0, 0), 90)
            G.FillEllipse(CKelGrd, New Rectangle(3, 3, 12, 11))
            G.DrawEllipse(New Pen(Color.FromArgb(13, 23, 33)), 2, 2, 14, 13)
        End If



        G.DrawEllipse(New Pen(Color.FromArgb(93, 103, 113)), 1, 1, 15, 14)

        G.DrawEllipse(New Pen(Color.FromArgb(113, 123, 133)), 3, 3, 11, 10)
        Dim txtbrush As Brush = New SolidBrush(Color.FromArgb(210, 220, 230))
        G.DrawString(Text, Font, txtbrush, New Point(18, 2), New StringFormat With {.LineAlignment = StringAlignment.Near, .Alignment = StringAlignment.Near})


        e.Graphics.DrawImage(B.Clone(), 0, 0)
        G.Dispose() : B.Dispose()

    End Sub

End Class


_______________________________________________________________________________
_______________________________________________________________________________

- kemudian tekan f5
- kemudian stopkan
- kemudian lihat di toolbox. maka akan muncul skin nya dan component" nya :)

2 comments: