Theme Avast AntiVirus

Statut
N'est pas ouverte pour d'autres réponses.
Inscription
20 Octobre 2013
Messages
1 862
Réactions
1 024
Points
2 466
RGCoins
35
Lu.
J'vous presente un theme que je trouve assez bien fait :D
F2SSCqH.png

Lien du code :
 
le virus scan?
 
Code:
Imports System.Drawing.Text
Imports System.IO
Imports System.Drawing.Drawing2D
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Drawing.Design
Imports System.Windows.Forms

Public Class AVTheme
    Inherits ContainerControl

    Private C1 As Color = Color.FromArgb(242, 242, 242)
    Private C2 As Color = Color.FromArgb(0, 166, 208)

    Private B1 As New SolidBrush(C1)
    Private B2 As New SolidBrush(C2)

    Private F As Font

    Private T As String


    Private _PageName As String = "Scan"
    Private _PageImage As Image


    Private MouseP As Point = New Point(0, 0)
    Private Cap As Boolean = False
    Private MoveHeight As Integer = 48


    Public Property PageName() As String
        Get
            Return _PageName
        End Get
        Set(v As String)
            _PageName = v : Invalidate()
        End Set
    End Property

    Public Property PageImage() As Image
        Get
            Return _PageImage
        End Get
        Set(v As Image)
            _PageImage = v
        End Set
    End Property

    Sub New()
        MyBase.New()
        Me.BackColor = C1

        DoubleBuffered = True
        Me.Dock = DockStyle.Fill

        F = New Font("Segoe UI", 13, FontStyle.Regular)
    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, MoveHeight).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

    Protected Overrides Sub OnPaint(e As System.Windows.Forms.PaintEventArgs)
        MyBase.OnPaint(e)
        Dim G As Graphics
        G = e.Graphics

        G.SmoothingMode = SmoothingMode.None

        Dim I As Bitmap = Me.ParentForm.Icon.ToBitmap
        Dim IM As Image = I
        T = Me.ParentForm.Text

        G.FillRectangle(B2, New Rectangle(0, 48, Me.Width, 70))
        G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(203, 203, 203))), New Point(0, Me.Height - 49), New Point(Me.Width, Me.Height - 49))

        G.DrawString(T, F, Brushes.Black, Me.Width / 2 - G.MeasureString(T, F).Width / 2, 24 - G.MeasureString(T, F).Height / 2)
        G.DrawImage(IM, New Point(Me.Width / 2 - G.MeasureString(T, F).Width / 2 - IM.Width - 2, IM.Height / 2 - 7))

        If Not Me.ParentForm.FormBorderStyle = FormBorderStyle.None Then
            Me.ParentForm.FormBorderStyle = FormBorderStyle.None
        End If

        G.TextRenderingHint = TextRenderingHint.AntiAlias
        G.DrawString(_PageName, New Font("Verdana", 17, FontStyle.Regular), Brushes.White, 105, 70)

        If Not _PageImage Is Nothing Then
            G.DrawImage(_PageImage, New Point(70, 84 - _PageImage.Height / 2))
        End If
    End Sub
End Class

Public Class AVWindowButton : Inherits Control

    Private Hover As Color = Color.FromArgb(242, 242, 242)

    Private _SetImage As String = "Close"

    Sub New()
        Me.Size = New Size(33, 33)
        Me.DoubleBuffered = True
        SetStyle(ControlStyles.SupportsTransparentBackColor, True)
        Me.BackColor = Color.Transparent
    End Sub

    <TypeConverter(GetType(btnimProperty)), Category("Misc"), Description("Select Image from the list")>
    Public Property SetImage() As String
        Get
            Return _SetImage
        End Get
        Set(value As String)
            _SetImage = value
        End Set
    End Property

    Protected Overrides Sub OnMouseEnter(ByVal e As EventArgs)
        Hover = Color.FromArgb(228, 228, 228)
        MyBase.Invalidate()
        MyBase.OnMouseEnter(e)
    End Sub
    Protected Overrides Sub OnMouseLeave(ByVal e As EventArgs)
        Hover = Color.FromArgb(242, 242, 242)
        MyBase.Invalidate()
        MyBase.OnMouseEnter(e)
    End Sub
    Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
        Hover = Color.FromArgb(214, 214, 214)
        MyBase.Invalidate()
        MyBase.OnMouseUp(e)
    End Sub
    Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
        Hover = Color.FromArgb(151, 151, 151)
        MyBase.Invalidate()
        MyBase.OnMouseClick(e)
    End Sub

    Public Function RoundRect(ByVal Rectangle As Rectangle, ByVal Curve As Integer) As GraphicsPath
        Dim P As GraphicsPath = New GraphicsPath()
        Dim ArcRectangleWidth As Integer = Curve * 2
        P.AddArc(New Rectangle(Rectangle.X, Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), -180, 90)
        P.AddArc(New Rectangle(Rectangle.Width - ArcRectangleWidth + Rectangle.X, Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), -90, 90)
        P.AddArc(New Rectangle(Rectangle.Width - ArcRectangleWidth + Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), 0, 90)
        P.AddArc(New Rectangle(Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), 90, 90)
        P.AddLine(New Point(Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y), New Point(Rectangle.X, Curve + Rectangle.Y))
        Return P
    End Function

    Protected Overrides Sub OnPaint(e As System.Windows.Forms.PaintEventArgs)
        MyBase.OnPaint(e)
        Dim G As Graphics
        G = e.Graphics

        G.SmoothingMode = SmoothingMode.HighQuality

        G.FillPath(New SolidBrush(Color.FromArgb(Hover.ToArgb)), RoundRect(New Rectangle(0, 0, Width - 1, Height - 1), 3))


        G.SmoothingMode = SmoothingMode.None

        If _SetImage = "Close" Then
            Using P1 As New Pen(Brushes.DimGray, 2)
                P1.StartCap = LineCap.Triangle : P1.EndCap = LineCap.Triangle
                G.DrawLine(P1, 6, 6, Me.Width - 6, Me.Height - 6)
                G.DrawLine(P1, Me.Width - 6, 6, 6, Me.Height - 6)
            End Using
        ElseIf _SetImage = "Minimize" Then
            Using P1 As New Pen(Brushes.DimGray, 2)
                P1.StartCap = LineCap.Triangle : P1.EndCap = LineCap.Triangle
                G.DrawLine(P1, 6, Me.Height - 6, Me.Width - 6, Me.Height - 6)
            End Using
        ElseIf _SetImage = "Maximize" Then
            Using P1 As New Pen(Brushes.DimGray, 2)
                P1.StartCap = LineCap.Triangle : P1.EndCap = LineCap.Triangle
                G.FillRectangle(New SolidBrush(Color.FromArgb(Hover.ToArgb)), 6, 8, 16, 13)
                G.DrawRectangle(P1, 6, 8, 16, 13)
                G.FillRectangle(New SolidBrush(Color.FromArgb(Hover.ToArgb)), 12, Me.Height - 19, 16, 13)
                G.DrawRectangle(P1, 12, Me.Height - 19, 16, 13)
            End Using
        ElseIf _SetImage = "Stop" Then
            Dim R1 As New Rectangle(Me.Height / 2 - 6, Me.Width / 2 - 6, 12, 12)
            G.FillRectangle(New SolidBrush(Color.DimGray), R1)
        ElseIf _SetImage = "Play" Then
            G.SmoothingMode = SmoothingMode.AntiAlias
            Dim ptsArray As PointF() = {New PointF(10, 10), New PointF(Me.Width - 10, Me.Height / 2), New PointF(10, Me.Height - 10), New PointF(10, 10)}
            Dim gp As New Drawing2D.GraphicsPath(Drawing2D.FillMode.Alternate)
            gp.AddLines(ptsArray)
            gp.CloseFigure()
            G.FillPath(Brushes.DimGray, gp)
        End If
    End Sub
End Class

Public Class btnimProperty
    Inherits System.ComponentModel.StringConverter

    Public Overrides Function GetStandardValues(context As System.ComponentModel.ITypeDescriptorContext) As System.ComponentModel.TypeConverter.StandardValuesCollection
        Return New StandardValuesCollection(myList)
    End Function

    Public Overrides Function GetStandardValuesSupported(context As System.ComponentModel.ITypeDescriptorContext) As Boolean
        Return True
    End Function

    Public Overrides Function GetStandardValuesExclusive(context As System.ComponentModel.ITypeDescriptorContext) As Boolean
        Return True
    End Function

    Private Function myList() As Collections.IList
        Dim imgList As New Collection

        With imgList
            .Add("Close")
            .Add("Minimize")
            .Add("Maximize")
            .Add("Stop")
            .Add("Play")
        End With
        Return imgList
    End Function
End Class

Public Class AVTextbox
    Inherits Control

    Dim WithEvents txtbox As New TextBox

    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
    Private _multiline As Boolean = False
    Public Shadows Property MultiLine() As Boolean
        Get
            Return _multiline
        End Get
        Set(ByVal value As Boolean)
            _multiline = value
            Invalidate()
        End Set
    End Property


    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(7, 5)
            .Font = New Font("Verdana", 10)
            .Size = New Size(Width - 10, 33)
            .UseSystemPasswordChar = UseSystemPasswordChar
        End With

    End Sub

    Sub New()
        MyBase.New()

        NewTextBox()
        Controls.Add(txtbox)

        SetStyle(ControlStyles.UserPaint, True)
        SetStyle(ControlStyles.SupportsTransparentBackColor, True)

        Text = ""
        BackColor = Color.White
        ForeColor = Color.Gray
        Font = New Font("Verdana", 10)
        Size = New Size(135, 33)
        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
        Height = 33
        With txtbox
            .Width = Width - 10
            .TextAlign = TextAlignment
            .UseSystemPasswordChar = UseSystemPasswordChar
            .Height = 33
        End With

        G.Clear(Color.Transparent)
        G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(216, 216, 216))), New Rectangle(0, 0, Width - 1, Height - 1))

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

Class AVTabControl
    Inherits Windows.Forms.TabControl

    Private _DrawBottomBorder As Boolean
    Public Property DrawBottomBorder() As Boolean
        Get
            Return _DrawBottomBorder
        End Get
        Set(ByVal value As Boolean)
            _DrawBottomBorder = value
            Invalidate()
        End Set
    End Property

    Private _BorderColor As Pen = Pens.Black
    Public Property BorderColor() As Color
        Get
            Return _BorderColor.Color
        End Get
        Set(ByVal value As Color)
            _BorderColor = New Pen(value)
            Invalidate()
        End Set
    End Property

    Private _TextAlignment As StringAlignment = StringAlignment.Near
    Public Property TextAlignment() As StringAlignment
        Get
            Return _TextAlignment
        End Get
        Set(ByVal value As StringAlignment)
            _TextAlignment = value
            Invalidate()
        End Set
    End Property

    Sub New()
        SetStyle(DirectCast(139286, ControlStyles), True)

        SizeMode = TabSizeMode.Fixed
        Alignment = TabAlignment.Left
        ItemSize = New Size(50, 50)
        Font = New Font("Segoe UI", 9, FontStyle.Regular, GraphicsUnit.Point)
        DrawMode = TabDrawMode.OwnerDrawFixed

        P1 = New Pen(Color.FromArgb(94, 94, 94))
        P2 = New Pen(Color.FromArgb(17, 17, 17))

        B1 = New SolidBrush(Color.FromArgb(38, 38, 38))
        B2 = New SolidBrush(Color.FromArgb(35, 35, 35))
        B3 = New SolidBrush(Color.FromArgb(5, Color.White))

        SF1 = New StringFormat()
        SF1.LineAlignment = StringAlignment.Center

        For Each pg As TabPage In Me.TabPages
            pg.BackColor = Color.FromArgb(242, 242, 242)
        Next
    End Sub

    Protected Overrides Sub OnControlAdded(ByVal e As ControlEventArgs)
        If TypeOf e.Control Is TabPage Then
            For Each i As TabPage In Me.Controls
                i = New TabPage
            Next
            e.Control.BackColor = Color.FromArgb(242, 242, 242)
        End If

        MyBase.OnControlAdded(e)
    End Sub

    Private R1, R2 As Rectangle

    Private P1, P2 As Pen
    Private B1, B2, B3 As SolidBrush

    Private GB1 As LinearGradientBrush
    Private GB2 As LinearGradientBrush

    Private TP1 As TabPage
    Private SF1 As StringFormat

    Private ItemHeight As Integer

    Dim S1 As Size
    Dim REC As New Rectangle
    Dim BR1 As LinearGradientBrush

    Private G As Graphics

    Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
        Dim F1 As New System.Drawing.Font("Segoe UI", 9, FontStyle.Bold, GraphicsUnit.Point)

        G = e.Graphics
        G.TextRenderingHint = TextRenderingHint.ClearTypeGridFit
        G.SmoothingMode = SmoothingMode.AntiAlias

        G.Clear(Color.FromArgb(242, 242, 242))


        ItemHeight = ItemSize.Height + 2
        G.FillRectangle(B1, 0, 0, ItemHeight, Height)
        G.DrawRectangle(Pens.Black, 0, 0, ItemHeight, Height)
        Dim B5 As New SolidBrush(Color.FromArgb(51, 51, 51))
        Dim P5 As New Pen(B5)
        For I As Integer = 0 To TabCount - 1
            R1 = GetTabRect(I)
            R1.Y -= 1
            R1.Width += 1
            R1.X -= 1
            TP1 = TabPages(I)
            If SelectedIndex = I Then
                Using GB1 As New LinearGradientBrush(R1, Color.FromArgb(26, 26, 26), Color.FromArgb(17, 17, 17), 90.0F)

                    Dim ColorBlend As New ColorBlend()
                    ColorBlend.Colors = {Color.FromArgb(25, 25, 25), Color.FromArgb(17, 17, 17), Color.FromArgb(25, 25, 25)}
                    ColorBlend.Positions = {0.0F, 0.5F, 1.0F}
                    GB1.InterpolationColors = ColorBlend
                    G.FillRectangle(GB1, R1)
                End Using

                G.DrawLine(P5, R1.Left, R1.Y - 1, R1.Width + 1, R1.Y - 1)
                If HoverIndex = I Then
                    G.FillRectangle(B3, R1)
                End If
                R1.X += 5
                R1.Width -= 14

                R2 = R1
                R2.Y += 1
                R2.X += 1

                SF1.Alignment = _TextAlignment
                G.DrawString(TP1.Text, Font, Brushes.White, New Rectangle(R2.Left + 33, R2.Top - 1, R2.Width - 43, R2.Height), SF1)
                Try
                    G.DrawImage(Me.ImageList.Images.Item(TabPages(I).ImageIndex), R1.X + 1, R1.Y + 11, 32, 32)
                Catch
                End Try
            Else
                Dim BR2 As New SolidBrush(Color.FromArgb(38, 38, 38))
                R1.Y -= 1
                G.FillRectangle(BR2, R1)
                G.DrawLine(P5, R1.X, R1.Y, R1.Right, R1.Y)
                If HoverIndex = I Then
                    G.FillRectangle(B3, R1)
                End If
                Dim BR As New SolidBrush(Color.FromArgb(140, Color.Black))
                G.DrawLine(P2, R1.X, R1.Bottom - 1, R1.Right, R1.Bottom - 1)
                R1.X += 5
                R1.Width -= 14
                R2 = R1
                R2.Y += 1
                R2.X += 1
                SF1.Alignment = _TextAlignment
                G.DrawString(TP1.Text, Font, Brushes.Gray, New Rectangle(R2.Left + 33, R2.Top - 1, R2.Width - 43, R2.Height), SF1)
                Try
                    G.DrawImage(Me.ImageList.Images.Item(TabPages(I).ImageIndex), R1.X + 2, R1.Y + 11, 32, 32)
                Catch
                End Try
            End If
            G.DrawLine(P5, R1.Right + 8, R1.Top, R1.Right + 8, R1.Bottom - 3)
        Next

        G.DrawLine(Pens.Black, 0, 0, R2.Height - 9, 0)
        G.DrawLine(_BorderColor, ItemHeight, 0, ItemHeight, Height)
        G.DrawLine(P5, R1.Left - 5, ItemSize.Width * (TabCount), R1.Right + 8, ItemSize.Width * (TabCount))

        If _DrawBottomBorder Then
            G.DrawLine(_BorderColor, 0, Height - 1, Width, Height - 1)
        End If
        G.DrawLine(P5, R1.Left - 5, ((TabCount) * (R1.Width + 12)) + (TabCount * 2), R1.Left - 5, 1)
    End Sub

    Private HoverIndex As Integer = -1

    Protected Overrides Sub OnMouseMove(ByVal e As MouseEventArgs)
        For I As Integer = 0 To TabPages.Count - 1
            If GetTabRect(I).Contains(e.Location) Then
                HoverIndex = I
                Exit For
            End If
        Next

        Invalidate()
        MyBase.OnMouseMove(e)
    End Sub

    Protected Overrides Sub OnMouseLeave(ByVal e As EventArgs)
        HoverIndex = -1
        Invalidate()
        MyBase.OnMouseLeave(e)
    End Sub
End Class


Public Class AVProgressBar
    Inherits Control

    Private _Value As Integer = 50
    Private _Thickness As Integer = 5
    Private _Angle As Integer = 0
    Private _Symbol As String = "%"

    Sub New()
        Size = New Size(65, 65)
        Invalidate()
    End Sub

    Public Property Angle() As Integer
        Get
            Return _Angle
        End Get
        Set(ByVal v As Integer)
            _Angle = v : Invalidate()
        End Set
    End Property

    Public Property Symbol() As String
        Get
            Return _Symbol
        End Get
        Set(ByVal v As String)
            _Symbol = v : Invalidate()
        End Set
    End Property

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

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

    Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
        MyBase.OnPaint(e)
        Me.Width = Me.Height
        Using B1 As New Bitmap(Width, Height)

            Using G As Graphics = Graphics.FromImage(B1)
                G.SmoothingMode = SmoothingMode.AntiAlias


                G.Clear(BackColor)

                Using LGB As New LinearGradientBrush(ClientRectangle, Color.FromArgb(217, 217, 217), Color.FromArgb(217, 217, 217), LinearGradientMode.Vertical)
                    Using P1 As New Pen(LGB, Thickness + 3)
                        G.DrawArc(P1, CInt(Thickness / 2) + 2, CInt(Thickness / 2) + 2, Width - Thickness - 4, Height - Thickness - 4, -90, 360)
                    End Using
                End Using

                Using LGB As New LinearGradientBrush(ClientRectangle, Color.FromArgb(0, 166, 208), Color.FromArgb(0, 166, 208), LinearGradientMode.Vertical)
                    Using P1 As New Pen(LGB, Thickness + 3)
                        G.DrawArc(P1, CInt(Thickness / 2) + 9, CInt(Thickness / 2) + 9, Width - Thickness - 18, Height - Thickness - 18, -90, 360)
                    End Using
                End Using

                Using LGB As New LinearGradientBrush(ClientRectangle, Color.FromArgb(255, 255, 255), Color.FromArgb(255, 255, 255), LinearGradientMode.Vertical)
                    Using P1 As New Pen(LGB, Thickness - 2)
                        Dim i As Integer = 360 / 100 * _Value
                        G.DrawArc(P1, CInt(Thickness / 2) + 9, CInt(Thickness / 2) + 9, Width - Thickness - 18, Height - Thickness - 18, -90, i)
                    End Using
                End Using


                G.DrawString(_Value & _Symbol, New Font("Arial", 13), Brushes.Black, New Point(Me.Width / 2 - G.MeasureString(_Value & _Symbol, New Font("Arial", 13)).Width / 2 + 1, Me.Height / 2 - G.MeasureString(_Value & "%", New Font("Arial", 13)).Height / 2 + 1))
            End Using
            e.Graphics.DrawImage(B1, 0, 0)
        End Using
    End Sub
End Class

Public Class AVLabel : Inherits Control

    Sub New()
        Me.Size = New Size(175, 25)
    End Sub


    Private _String1 As String = "Quick Scan"
    Private _String2 As String = "/ Scan running..."
    Private _Img As Image

    Public Property String1() As String
        Get
            Return _String1
        End Get
        Set(v As String)
            _String1 = v : Invalidate()
        End Set
    End Property

    Public Property String2() As String
        Get
            Return _String2
        End Get
        Set(v As String)
            _String2 = v : Invalidate()
        End Set
    End Property

    Public Property Image As Image
        Get
            Return _Img
        End Get
        Set(v As Image)
            _Img = v : Invalidate()
        End Set
    End Property

    Protected Overrides Sub OnPaint(e As System.Windows.Forms.PaintEventArgs)
        MyBase.OnPaint(e)

        Dim G As Graphics
        G = e.Graphics

        G.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias

        G.DrawString(_String1, New Font("Segoe UI", 9, FontStyle.Bold), Brushes.DimGray, 32, 6)
        G.DrawString(_String2, New Font("Segoe UI", 9), Brushes.DimGray, 33 + G.MeasureString(_String1, New Font("Segoe UI", 9, FontStyle.Bold)).Width, 6)
        If Not _Img Is Nothing Then
            G.DrawImage(_Img, 0, 0)
        End If
    End Sub
End Class

Public Class AVComboBox
    Inherits ComboBox

    Private _StartIndex As Integer = 0
    Private C1 As Color = Color.FromArgb(254, 254, 254)
    Private C2 As Color = Color.FromArgb(244, 244, 244)

    Public Property StartIndex As Integer
        Get
            Return _StartIndex
        End Get
        Set(ByVal value As Integer)
            _StartIndex = value
            Try
                MyBase.SelectedIndex = value
            Catch
            End Try
            Invalidate()
        End Set
    End Property

    Sub ReplaceItem(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles Me.DrawItem
        e.DrawBackground()
        Try
            If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then
                e.Graphics.FillRectangle(New SolidBrush(Color.LightGray), e.Bounds)
                Using b As New SolidBrush(e.ForeColor)
                    e.Graphics.DrawString(MyBase.GetItemText(MyBase.Items(e.Index)), New Font("Verdana", 10), b, 1, e.Bounds.Top + 5)
                End Using
            Else
                e.Graphics.DrawString(MyBase.GetItemText(MyBase.Items(e.Index)), New Font("Verdana", 10), Brushes.Gray, 1, e.Bounds.Top + 5)
            End If
        Catch
        End Try
        e.DrawFocusRectangle()
        Me.Invalidate()
    End Sub

    Protected Sub DrawTriangle(ByVal Clr As Color, ByVal FirstPoint As Point, ByVal SecondPoint As Point, ByVal ThirdPoint As Point, ByVal G As Graphics)
        Dim points As New List(Of Point)()
        points.Add(FirstPoint)
        points.Add(SecondPoint)
        points.Add(ThirdPoint)
        G.FillPolygon(New SolidBrush(Clr), points.ToArray)
    End Sub

    Sub New()
        Me.Width = 163
        Me.Font = New Font("Verdana", 15)
        Me.SetStyle(ControlStyles.AllPaintingInWmPaint Or _
        ControlStyles.ResizeRedraw Or _
        ControlStyles.UserPaint Or _
        ControlStyles.DoubleBuffer, True)
        Me.DrawMode = Windows.Forms.DrawMode.OwnerDrawFixed
        Me.BackColor = C1
        Me.ForeColor = C1
        Me.DropDownStyle = ComboBoxStyle.DropDownList
        Me.DoubleBuffered = True
    End Sub

    Protected Overrides Sub OnTextChanged(e As System.EventArgs)
        MyBase.OnTextChanged(e)
        Invalidate()
    End Sub

    Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
        C2 = Color.FromArgb(233, 233, 233)
        MyBase.Invalidate()
        MyBase.OnMouseClick(e)
    End Sub

    Protected Overrides Sub OnMouseUp(e As System.Windows.Forms.MouseEventArgs)
        C2 = Color.FromArgb(244, 244, 244)
        MyBase.Invalidate()
        MyBase.OnMouseUp(e)
    End Sub

    Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
        MyBase.OnPaint(e)
        Dim G As Graphics
        G = e.Graphics

        G.FillRectangle(New SolidBrush(Color.FromArgb(C2.ToArgb)), New Rectangle(Width - 20, 2, 17, Height - 5))
        G.SmoothingMode = SmoothingMode.HighQuality
        Try
            G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(216, 216, 216))), New Rectangle(Width - 20, 2, 17, Height - 5))

            Try
                G.DrawString(Text, New Font("Verdana", 10), Brushes.Gray, New Rectangle(3, 0, Width - 20, Height), New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Near})
            Catch : End Try

            G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(216, 216, 216))), 0, 0, 0, 0)
            G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(216, 216, 216))), New Rectangle(0, 0, Width - 1, Height - 1))

            DrawTriangle(Color.FromArgb(216, 216, 216), New Point(Width - 15, 14), New Point(Width - 8, 14), New Point(Width - 12, 17), G)
        Catch
        End Try
    End Sub
End Class

Public Class AVButton
    Inherits Control

    Private Hover As Color
    Private _MainColor As String
    Private Loaded As Boolean

    Sub New()
        Me.Size = New Size(33, 33)
        Me.DoubleBuffered = True
        SetStyle(ControlStyles.SupportsTransparentBackColor, True)
        Me.BackColor = Color.Transparent
    End Sub

    <TypeConverter(GetType(btnColorProperty)), Category("Misc"), Description("Select color from the list")>
    Public Property MainColor() As String
        Get
            Return _MainColor
        End Get
        Set(value As String)
            _MainColor = value
        End Set
    End Property

    Protected Overrides Sub OnMouseEnter(ByVal e As EventArgs)

        Hover = Color.FromArgb(228, 228, 228)

        If _MainColor = "Light" Then
            Hover = Color.FromArgb(228, 228, 228)
        Else
            Hover = Color.FromArgb(117, 117, 117)
        End If

        MyBase.Invalidate()
        MyBase.OnMouseEnter(e)
    End Sub
    Protected Overrides Sub OnMouseLeave(ByVal e As EventArgs)

        Hover = Color.FromArgb(242, 242, 242)

        If _MainColor = "Light" Then
            Hover = Color.FromArgb(242, 242, 242)
        Else
            Hover = Color.DimGray
        End If

        MyBase.Invalidate()
        MyBase.OnMouseEnter(e)
    End Sub
    Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
        If _MainColor = "Light" Then
            Hover = Color.FromArgb(228, 228, 228)
        Else
            Hover = Color.FromArgb(117, 117, 117)
        End If
        MyBase.Invalidate()
        MyBase.OnMouseUp(e)
    End Sub
    Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
        If _MainColor = "Light" Then
            Hover = Color.FromArgb(151, 151, 151)
        Else
            Hover = Color.FromArgb(66, 66, 66)
        End If
        MyBase.Invalidate()
        MyBase.OnMouseClick(e)
    End Sub


    Public Function RoundRect(ByVal Rectangle As Rectangle, ByVal Curve As Integer) As GraphicsPath
        Dim P As GraphicsPath = New GraphicsPath()
        Dim ArcRectangleWidth As Integer = Curve * 2
        P.AddArc(New Rectangle(Rectangle.X, Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), -180, 90)
        P.AddArc(New Rectangle(Rectangle.Width - ArcRectangleWidth + Rectangle.X, Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), -90, 90)
        P.AddArc(New Rectangle(Rectangle.Width - ArcRectangleWidth + Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), 0, 90)
        P.AddArc(New Rectangle(Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), 90, 90)
        P.AddLine(New Point(Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y), New Point(Rectangle.X, Curve + Rectangle.Y))
        Return P
    End Function

    Protected Overrides Sub OnPaint(e As System.Windows.Forms.PaintEventArgs)
        MyBase.OnPaint(e)
        Dim G As Graphics
        G = e.Graphics

        If Loaded = False Then
            If MainColor = "Light" Then
                Hover = Color.FromArgb(242, 242, 242)
            Else
                Hover = Color.DimGray
            End If
            Loaded = True
        End If

        G.SmoothingMode = SmoothingMode.HighQuality

        If MainColor = "Light" Then
            G.FillPath(New SolidBrush(Color.FromArgb(Hover.ToArgb)), RoundRect(New Rectangle(0, 0, Width - 1, Height - 1), 5))
        Else
            G.FillPath(New SolidBrush(Color.FromArgb(Hover.ToArgb)), RoundRect(New Rectangle(0, 0, Width - 1, Height - 1), 5))
        End If

        G.DrawString(Text, New Font("Verdana", 10), Brushes.Black, Me.Width / 2 - G.MeasureString(Text, New Font("Verdana", 10)).Width / 2, Me.Height / 2 - G.MeasureString(Text, New Font("Verdana", 10)).Height / 2)

        G.SmoothingMode = SmoothingMode.None
    End Sub
End Class

Public Class btnColorProperty
    Inherits System.ComponentModel.StringConverter

    Public Overrides Function GetStandardValues(context As System.ComponentModel.ITypeDescriptorContext) As System.ComponentModel.TypeConverter.StandardValuesCollection
        Return New StandardValuesCollection(myList)
    End Function

    Public Overrides Function GetStandardValuesSupported(context As System.ComponentModel.ITypeDescriptorContext) As Boolean
        Return True
    End Function

    Public Overrides Function GetStandardValuesExclusive(context As System.ComponentModel.ITypeDescriptorContext) As Boolean
        Return True
    End Function

    Private Function myList() As Collections.IList
        Dim imgList As New Collection

        With imgList
            .Add("Light")
            .Add("Dark")
        End With
        Return imgList
    End Function
End Class
Comme sa pas de telechargement.
 
On doit le mettre ou?
 
Salut, j'ai renommé ta discussion car son titre n'était pas assez clair.

À l'avenir, tu devrais faire des titres de topics plus explicites, ça augmentera de façon significative les vues sur ta discussion, et les membres te répondrons donc plus facilement :)
 
On doit le mettre ou?
Tu créer une classe, tu colle le code dedans, ensuite tu appuie sur F5 ( ou sur l'icone verte en forme de play ) tu arrette le logiciel, et tu as a gauche dans la barre d'outils, les nouveaux objets!
 
Tu créer une classe, tu colle le code dedans, ensuite tu appuie sur F5 ( ou sur l'icone verte en forme de play ) tu arrette le logiciel, et tu as a gauche dans la barre d'outils, les nouveaux objets!
Marche en C# ?
 
Pour l'utiliser en C#, suffit de le compiler en .dll (en vb.net d'abord) puis de l'importer dans les références de ton projet C# ;)
 
C'est pour faire un virus scan ?
 
Il est super jolies leur theme ^^

Le rond avec les 50% c'est une progressbar? :P
 
Meme design que celui du Recovery tools de IMSCX :troll:
Nope ;) je l'ai vu après lui, ça fait 1 mois que je suis sur mon projet moi :rofl: mais le sien est beaux *-*

Celui qui veut l thème Avast en C# je vous en ai fait une bibliothèque ;)
 
Statut
N'est pas ouverte pour d'autres réponses.
Retour
Haut