Page 1 of 2

Custom form theme (VB)

Posted: Wed Dec 22, 2010 4:57 pm
by dj1437
Make a new file then create a class, delete all of the code, type the following code:
Code: Select all
Imports System.Drawing.Drawing2D



Class FutureTheme
    Inherits Control

    Protected Overrides Sub OnHandleCreated(ByVal e As EventArgs)
        Dock = DockStyle.Fill
        If TypeOf Parent Is Form Then
            With DirectCast(Parent, Form)
                .FormBorderStyle = 0
                .BackColor = C1
                .ForeColor = Color.FromArgb(12, 12, 12)
            End With
        End If
        MyBase.OnHandleCreated(e)
    End Sub
    Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
        If New Rectangle(Parent.Location.X, Parent.Location.Y, Width, 22).IntersectsWith(New Rectangle(MousePosition.X, MousePosition.Y, 1, 1)) Then
            Capture = False
            Dim M As Message = Message.Create(Parent.Handle, 161, New IntPtr(2), IntPtr.Zero)
            DefWndProc(M)
        End If
        MyBase.OnMouseDown(e)
    End Sub

    Dim G As Graphics, B As Bitmap, R1, R2 As Rectangle
    Dim C1, C2, C3 As Color, P1, P2, P3 As Pen, B1 As SolidBrush, B2, B3 As LinearGradientBrush

    Sub New()

        SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint, True)
        C1 = Color.FromArgb(34, 34, 34) 'Background
        C2 = Color.FromArgb(49, 49, 49) 'Highlight
        C3 = Color.FromArgb(22, 22, 22) 'Shadow
        P1 = New Pen(Color.Black) 'Border
        P2 = New Pen(C1)
        P3 = New Pen(C2)
        B1 = New SolidBrush(C2)
        Font = New Font("Verdana", 7.0F, FontStyle.Bold)

    End Sub

    Protected Overrides Sub OnSizeChanged(ByVal e As EventArgs)
        If Height > 0 Then
            R1 = New Rectangle(0, 2, Width, 18)
            R2 = New Rectangle(0, 21, Width, 10)
            B2 = New LinearGradientBrush(R1, C1, C3, 90.0F)
            B3 = New LinearGradientBrush(R2, Color.FromArgb(70, 0, 0, 0), Color.Transparent, 90.0F)
            Invalidate()
        End If
        MyBase.OnSizeChanged(e)
    End Sub

    Protected Overrides Sub OnPaintBackground(ByVal pevent As PaintEventArgs)
    End Sub

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

        G.Clear(C1)

        For I As Integer = 0 To Width + 17 Step 4
            G.DrawLine(P1, I, 21, I - 17, 37)
            G.DrawLine(P1, I - 1, 21, I - 16, 37)
        Next
        G.FillRectangle(B3, R2)

        G.FillRectangle(B2, R1)
        G.DrawString(Text, Font, B1, 5, 5)

        G.DrawRectangle(P2, 1, 1, Width - 3, 19)
        G.DrawRectangle(P3, 1, 39, Width - 3, Height - 41)

        G.DrawRectangle(P1, 0, 0, Width - 1, Height - 1)
        G.DrawLine(P1, 0, 21, Width, 21)
        G.DrawLine(P1, 0, 38, Width, 38)

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

End Class
Class FutureButton
    Inherits Control

    Dim B As Bitmap, G As Graphics, R1 As Rectangle
    Dim C1, C2, C3, C4 As Color, P1, P2, P3, P4 As Pen, B1, B2, B5 As Brush, B3, B4 As LinearGradientBrush

    Sub New()
        SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint, True)

        C1 = Color.FromArgb(34, 34, 34) 'Background
        C2 = Color.FromArgb(49, 49, 49) 'Highlight
        C3 = Color.FromArgb(39, 39, 39) 'Lesser Highlight
        C4 = Color.FromArgb(60, Color.Black)
        P1 = New Pen(Color.FromArgb(22, 22, 22)) 'Shadow
        P2 = New Pen(Color.FromArgb(20, Color.White))
        P3 = New Pen(Color.FromArgb(10, Color.White))
        P4 = New Pen(Color.FromArgb(30, Color.Black))
        B1 = New SolidBrush(C1)
        B2 = New SolidBrush(C3)
        B5 = New SolidBrush(Color.FromArgb(12, 12, 12)) 'Text Color
        Font = New Font("Verdana", 8.0F)
    End Sub

    Private State As Integer
    Protected Overrides Sub OnMouseLeave(ByVal e As EventArgs)
        State = 0
        Invalidate()
    End Sub
    Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
        State = 1
        Invalidate()
    End Sub
    Protected Overrides Sub OnMouseEnter(ByVal e As EventArgs)
        State = 1
        Invalidate()
    End Sub
    Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
        State = 2
        Invalidate()
    End Sub

    Protected Overrides Sub OnResize(ByVal e As EventArgs)
        R1 = New Rectangle(2, 2, Width - 4, 4)
        B3 = New LinearGradientBrush(ClientRectangle, C3, C2, 90.0F)
        B4 = New LinearGradientBrush(R1, C4, Color.Transparent, 90.0F)
        Invalidate()
    End Sub

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

        G.FillRectangle(B3, ClientRectangle)

        Select Case State
            Case 0 'Up
                G.FillRectangle(B1, 1, 1, Width - 2, Height - 2)
                G.DrawLine(P2, 2, 2, Width - 3, 2)
                G.DrawLine(P3, 2, Height - 3, Width - 3, Height - 3)
            Case 1 'Over
                G.FillRectangle(B2, 1, 1, Width - 2, Height - 2)
                G.DrawLine(P2, 2, 2, Width - 3, 2)
                G.DrawLine(P3, 2, Height - 3, Width - 3, Height - 3)
            Case 2 'Down
                G.FillRectangle(B2, 1, 1, Width - 2, Height - 2)
                G.FillRectangle(B4, R1)
                G.DrawLine(P4, 2, 2, 2, Height - 3)
        End Select

        Dim S As SizeF = G.MeasureString(Text, Font)
        G.DrawString(Text, Font, B5, Convert.ToInt32(Width / 2 - S.Width / 2), Convert.ToInt32(Height / 2 - S.Height / 2))

        G.DrawRectangle(P1, 1, 1, Width - 3, Height - 3)

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

    Protected Overrides Sub OnPaintBackground(ByVal e As PaintEventArgs)
    End Sub

End Class
Class FutureProgressBar
    Inherits Control

#Region " Properties "
    Private _Maximum As Double = 100
    Public Property Maximum() As Double
        Get
            Return _Maximum
        End Get
        Set(ByVal v As Double)
            _Maximum = v
            Progress = _Current / v * 100
            Invalidate()
        End Set
    End Property
    Private _Current As Double
    Public Property Current() As Double
        Get
            Return _Current
        End Get
        Set(ByVal v As Double)
            _Current = v
            Progress = v / _Maximum * 100
            Invalidate()
        End Set
    End Property
    Private _Progress As Integer
    Public Property Progress() As Double
        Get
            Return _Progress
        End Get
        Set(ByVal v As Double)
            If v < 0 Then v = 0 Else If v > 100 Then v = 100
            _Progress = Convert.ToInt32(v)
            _Current = v * 0.01 * _Maximum
            If Width > 0 Then UpdateProgress()
            Invalidate()
        End Set
    End Property

    Dim C2 As Color = Color.FromArgb(6, 96, 149) 'Dark Color
    Public Property Color1() As Color
        Get
            Return C2
        End Get
        Set(ByVal v As Color)
            C2 = v
            UpdateColors()
            Invalidate()
        End Set
    End Property
    Dim C3 As Color = Color.FromArgb(70, 167, 220) 'Light color
    Public Property Color2() As Color
        Get
            Return C3
        End Get
        Set(ByVal v As Color)
            C3 = v
            UpdateColors()
            Invalidate()
        End Set
    End Property

#End Region

    Protected Overrides Sub OnPaintBackground(ByVal pevent As PaintEventArgs)
    End Sub

    Dim G As Graphics, B As Bitmap, R1, R2 As Rectangle, X As ColorBlend
    Dim C1 As Color, P1, P2, P3 As Pen, B1, B2 As LinearGradientBrush, B3 As SolidBrush
    Sub New()

        C1 = Color.FromArgb(22, 22, 22) 'Background
        P1 = New Pen(Color.FromArgb(70, Color.White), 2)
        P2 = New Pen(C2)
        P3 = New Pen(Color.FromArgb(49, 49, 49)) 'Highlight
        B3 = New SolidBrush(Color.FromArgb(100, Color.White))
        X = New ColorBlend(4)
        X.Colors = New Color() {C2, C3, C3, C2}
        X.Positions = New Single() {0.0F, 0.1F, 0.9F, 1.0F}
        R2 = New Rectangle(2, 2, 2, 2)
        B2 = New LinearGradientBrush(R2, Nothing, Nothing, 180.0F)
        B2.InterpolationColors = X

    End Sub

    Sub UpdateColors()
        P2.Color = C2
        X.Colors = New Color() {C2, C3, C3, C2}
        B2.InterpolationColors = X
    End Sub

    Protected Overrides Sub OnSizeChanged(ByVal e As System.EventArgs)
        R1 = New Rectangle(0, 1, Width, 4)
        B1 = New LinearGradientBrush(R1, Color.FromArgb(60, Color.Black), Color.Transparent, 90.0F)
        UpdateProgress()
        Invalidate()
        MyBase.OnSizeChanged(e)
    End Sub

    Sub UpdateProgress()
        If _Progress = 0 Then Return
        R2 = New Rectangle(2, 2, Convert.ToInt32((Width - 4) * (_Progress * 0.01)), Height - 4)
        B2 = New LinearGradientBrush(R2, Nothing, Nothing, 180.0F)
        B2.InterpolationColors = X
    End Sub

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

        G.Clear(C1)

        G.FillRectangle(B1, R1)

        If _Progress > 0 Then
            G.FillRectangle(B2, R2)

            G.FillRectangle(B3, 2, 3, R2.Width, 4)
            G.DrawRectangle(P1, 4, 4, R2.Width - 4, Height - 8)

            G.DrawRectangle(P2, 2, 2, R2.Width - 1, Height - 5)
        End If

        G.DrawRectangle(P3, 0, 0, Width - 1, Height - 1)

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

End Class
Class FutureSeperator
    Inherits Control

    Private _Orientation As Orientation
    Public Property Orientation() As Orientation
        Get
            Return _Orientation
        End Get
        Set(ByVal v As Orientation)
            _Orientation = v
            UpdateOffset()
            Invalidate()
        End Set
    End Property

    Dim G As Graphics, B As Bitmap, I As Integer
    Dim C1 As Color, P1, P2 As Pen
    Sub New()
        SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint, True)
        C1 = Color.FromArgb(34, 34, 34) 'Background
        P1 = New Pen(Color.FromArgb(22, 22, 22)) 'Shadow
        P2 = New Pen(Color.FromArgb(49, 49, 49)) 'Highlight
    End Sub

    Protected Overrides Sub OnSizeChanged(ByVal e As EventArgs)
        UpdateOffset()
        MyBase.OnSizeChanged(e)
    End Sub

    Sub UpdateOffset()
        I = Convert.ToInt32(If(_Orientation = 0, Height / 2 - 1, Width / 2 - 1))
    End Sub

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

        G.Clear(C1)

        If _Orientation = 0 Then
            G.DrawLine(P1, 0, I, Width, I)
            G.DrawLine(P2, 0, I + 1, Width, I + 1)
        Else
            G.DrawLine(P2, I, 0, I, Height)
            G.DrawLine(P1, I + 1, 0, I + 1, Height)
        End If

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

    Protected Overrides Sub OnPaintBackground(ByVal pevent As PaintEventArgs)
    End Sub

End Class


Debug, Stop, then look at your toolbox. Its a black form theme and a few other things

Re: Custom form theme (VB)

Posted: Wed Dec 22, 2010 6:45 pm
by MrAksel
This was extremely cool things! Thanks for posting! This is the best theme I have seen, nice work!

Re: Custom form theme (VB)

Posted: Thu Dec 23, 2010 4:10 pm
by dj1437
MrAksel wrote:
This was extremely cool things! Thanks for posting! This is the best theme I have seen, nice work!
your welcome, i found this broken code for a green theme, i messed around with it and it came out like this and it was black

Re: Custom form theme (VB)

Posted: Thu Dec 23, 2010 5:13 pm
by Bogoh67
are you sure you made this i have seen this before somewhere ill will check just to make sure but anyways i like it and yeah it could have a little more bright colors , not bright like the theme i made it was too bright. good luck

Re: Custom form theme (VB)

Posted: Thu Dec 23, 2010 7:49 pm
by Cheatmasterbw
Could you post a screenshot??

Re: Custom form theme (VB)

Posted: Fri Dec 24, 2010 1:31 am
by dj1437
Bogoh67 wrote:
are you sure you made this i have seen this before somewhere ill will check just to make sure but anyways i like it and yeah it could have a little more bright colors , not bright like the theme i made it was too bright. good luck

i did get help from some guy on youtube, i dont remember him. 100% made by me and him.

Re: Custom form theme (VB)

Posted: Fri Dec 24, 2010 1:37 am
by dj1437
Cheatmasterbw wrote:
Could you post a screenshot??
here it is
Image

Re: Custom form theme (VB)

Posted: Fri Dec 24, 2010 2:32 am
by dj1437
Bogoh67 wrote:
are you sure you made this i have seen this before somewhere ill will check just to make sure but anyways i like it and yeah it could have a little more bright colors , not bright like the theme i made it was too bright. good luck

i based it of of NecroPhis's theme because it wouldent work for me... idk why...

Re: Custom form theme (VB)

Posted: Sun Jan 02, 2011 2:56 am
by ManMega2
Thank you for the great tutorial, i was looking for form themes everywhere!!!

Re: Custom form theme (VB)

Posted: Sun Jan 02, 2011 9:24 pm
by Bogoh67
dj1437 wrote:
Bogoh67 wrote:
are you sure you made this i have seen this before somewhere ill will check just to make sure but anyways i like it and yeah it could have a little more bright colors , not bright like the theme i made it was too bright. good luck

i based it of of NecroPhis's theme because it wouldent work for me... idk why...
hey i think you got the progressbar from me (viewtopic.php?f=38&t=2840&) , but thats what i made it for, for people to use in thier projects