Circle Progress Bar

Heres your chance to share your own tutorials with the community. Just post them on here. If your lucky they may even be posted on the main site.
14 posts Page 2 of 2
User avatar
Axel
Coding God
Coding God
Posts: 1928
Joined: Sun Jun 27, 2010 9:15 pm

Re: Circle Progress Bar
Axel
Bogoh67 wrote:
i got this from http://www.leetcoders.org/showthread.php?tid=3251
add new class delete all code and write this
Code: Select all
Imports System.Drawing.Drawing2D
Public Class Circle_Pro_Bar : Inherits Control

    Sub New()
        Size = New Size(100, 100)
        Font = New Font(Font.FontFamily, 20)
    End Sub

    'Notice in our properties, in the set routine we call 'Invalidate()' this will cause the
    'control to redraw anytime the values are changed.

    Private _Value As Long
    Public Property Value() As Long
        Get
            Return _Value
        End Get
        Set(ByVal v As Long)
            If v > _Maximum Then v = _Maximum
            _Value = v : Invalidate()
        End Set
    End Property

    Private _Maximum As Long = 100
    Public Property Maximum() As Long
        Get
            Return _Maximum
        End Get
        Set(ByVal v As Long)
            If v < 1 Then v = 1
            _Maximum = v : Invalidate()
        End Set
    End Property

    Private _Thickness As Integer = 14
    Public Property Thickness() As Integer
        Get
            Return _Thickness
        End Get
        Set(ByVal v As Integer)
            _Thickness = v : Invalidate()
        End Set
    End Property

    'Handle PaintBackground to prevent flicker
    Protected Overrides Sub OnPaintBackground(ByVal p As PaintEventArgs)
    End Sub

    Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
        MyBase.OnPaint(e)

        'Create image buffer
        Using B As New Bitmap(Width, Height)
            Using G = Graphics.FromImage(B)
                'Enable anti-aliasing to prevent rough edges
                G.SmoothingMode = 2

                'Fill background color
                G.Clear(BackColor)

                'Draw progress background
                Using T As New LinearGradientBrush(ClientRectangle, Color.Blue, Color.DarkBlue, LinearGradientMode.Vertical)
                    Using P As New Pen(T, Thickness)
                        G.DrawArc(P, CInt(Thickness / 2), CInt(Thickness / 2), Width - Thickness - 1, Height - Thickness - 1, 0, 360)
                    End Using
                End Using

                'Draw progress
                Using T As New LinearGradientBrush(ClientRectangle, Color.LightBlue, Color.Blue, LinearGradientMode.Vertical)
                    Using P As New Pen(T, Thickness)
                        P.StartCap = 2 : P.EndCap = 2
                        G.DrawArc(P, CInt(Thickness / 2), CInt(Thickness / 2), Width - Thickness - 1, Height - Thickness - 1, -90, CInt((360 / _Maximum) * _Value))
                    End Using
                End Using

                'Draw center
                Using T As New LinearGradientBrush(ClientRectangle, Color.Blue, Color.LightBlue, LinearGradientMode.Vertical)
                    G.FillEllipse(T, Thickness, Thickness, Width - Thickness * 2 - 1, Height - Thickness * 2 - 1)
                End Using

                'Draw progress string
                Dim S = G.MeasureString(CInt((100 / _Maximum) * _Value), Font)
                G.DrawString(CInt((100 / _Maximum) * _Value), Font, Brushes.DarkBlue, Width / 2 - S.Width / 2, Height / 2 - S.Height / 2)

                'Draw outter border
                G.DrawEllipse(Pens.DarkBlue, 0, 0, Width - 1, Height - 1)

                'Draw inner border
                G.DrawEllipse(Pens.DarkBlue, Thickness, Thickness, Width - Thickness * 2 - 1, Height - Thickness * 2 - 1)

                'Output the buffered image
                e.Graphics.DrawImage(B.Clone, 0, 0)
            End Using
        End Using

    End Sub

End Class

then debug
stop debugging go back to your from look at toolbox
how about building it instead of debugging it and closing
cuz in C#(for example) you can't debug class library's directly
http://vagex.com/?ref=25000
User avatar
Cheatmasterbw
Coding God
Coding God
Posts: 1506
Joined: Fri Jan 01, 2010 2:30 pm

Re: Circle Progress Bar
Cheatmasterbw
Nice progress bar!
http://www.megaapps.tk/
User avatar
tought5
New Member
New Member
Posts: 19
Joined: Fri Dec 10, 2010 6:50 pm

Re: Circle Progress Bar
tought5
nice job!
User avatar
Usman55
VIP - Site Partner
VIP - Site Partner
Posts: 2821
Joined: Thu Dec 24, 2009 7:52 pm

Re: Circle Progress Bar
Usman55
I have seen this before but haven't got the time to implement it. It looks cool but only in the center of a form or next to a textbox.
Image
14 posts Page 2 of 2
Return to “Tutorials”