Advertisement
netrosly

Custom ImageSlider Control

Nov 19th, 2014
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. '///////////////
  2. 'By Nettro /////
  3. 'Nov 19, 2014//
  4. '///////////////
  5. Public Class ImageSlider
  6.     Inherits Control
  7.     Public Shared AutoSwitchTMR As New Timer
  8.     Sub New()
  9.         Me.DoubleBuffered = True
  10.     End Sub
  11.     Enum GType
  12.         HighQ
  13.         LowQ
  14.     End Enum
  15.     Enum Stle
  16.         Regular
  17.         Steam
  18.         Header
  19.     End Enum
  20.     Public Property Drawing As GType = GType.HighQ
  21.     Public Property Style As Stle
  22.     Public Property SelectedItemIndex As Integer = 0
  23.     Public Property MaxSelectedItemIndex As Integer = 0
  24.     Public Property AutoSlide As Boolean = False
  25.     Public Property AutoSlideTimeSwitch As Integer = 3000
  26.     Property Border_Color As Color = Color.FromArgb(200, 25, 25, 25)
  27.     Property Fill_Color As Color = Color.FromArgb(100, 45, 45, 45)
  28.     Property Header_Selected_Color As Color = Color.FromArgb(45, 45, 45)
  29.     Public Class ItemCollection
  30.         Inherits List(Of Item)
  31.         Private Parent As ImageSlider
  32.         Public Sub New(Parent As ImageSlider)
  33.             Me.Parent = Parent
  34.         End Sub
  35.         Public Shadows Sub Add(Item As Item)
  36.             MyBase.Add(Item)
  37.         End Sub
  38.         Public Shadows Sub AddRange(Range As List(Of Item))
  39.             MyBase.AddRange(Range)
  40.         End Sub
  41.         Public Shadows Sub Clear()
  42.             MyBase.Clear()
  43.         End Sub
  44.         Public Shadows Sub Remove(Item As Item)
  45.             MyBase.Remove(Item)
  46.         End Sub
  47.         Public Shadows Sub RemoveAt(Index As Integer)
  48.             MyBase.RemoveAt(Index)
  49.         End Sub
  50.         Public Shadows Sub RemoveAll(Predicate As System.Predicate(Of Item))
  51.             MyBase.RemoveAll(Predicate)
  52.         End Sub
  53.         Public Shadows Sub RemoveRange(Index As Integer, Count As Integer)
  54.             MyBase.RemoveRange(Index, Count)
  55.         End Sub
  56.  
  57.     End Class
  58.     Public Class Item
  59.         Property Text As String
  60.         Property Text_Color As Color = Color.White
  61.         Property Image As Image
  62.         Property OrderNumber As Integer
  63.         Property PictureLink As Boolean = False
  64.         Property LoadOption As Kind = Kind.PictureBox
  65.         Property DisplayText As Boolean = False
  66.         Enum Type
  67.             StretchImage
  68.             Zoom
  69.             Normal
  70.             CenterImage
  71.         End Enum
  72.         Enum Kind
  73.             PictureBox
  74.             Draw
  75.         End Enum
  76.         Public Property PictureSizemode As Type = Type.CenterImage
  77.         Property URL_LINK As String = "http://i.imgur.com/blkrqBo.gif"
  78.         Protected UniqueId As Guid
  79.         Sub New()
  80.             UniqueId = Guid.NewGuid()
  81.         End Sub
  82.         Public Overrides Function ToString() As String
  83.             Return Text
  84.         End Function
  85.  
  86.         Public Overrides Function Equals(obj As Object) As Boolean
  87.             If TypeOf obj Is Item Then
  88.                 Return (DirectCast(obj, Item).UniqueId = UniqueId)
  89.             End If
  90.             Return False
  91.         End Function
  92.  
  93.     End Class
  94.     Public _Items As New ItemCollection(Me)
  95.     <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
  96.     Public Property Items As ItemCollection
  97.         Get
  98.             Return _Items
  99.         End Get
  100.         Set(ByVal value As ItemCollection)
  101.             _Items = value
  102.         End Set
  103.     End Property
  104.     Private Sub ImageSlider_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
  105.         'Drawing Quality
  106.        e.Graphics.Clear(BackColor)
  107.         If Drawing = GType.HighQ Then
  108.             e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
  109.         Else
  110.             e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.HighSpeed
  111.         End If
  112.         'Figure
  113.  
  114.         Dim i As Integer = 0
  115.         For Each Itm As Item In _Items
  116.             i += 1
  117.         Next
  118.         If AutoSlide = False Then
  119.             If AutoSwitchTMR.Enabled = True Then
  120.                 AutoSwitchTMR.Stop()
  121.             End If
  122.         Else
  123.             AutoSwitchTMR.Interval = AutoSlideTimeSwitch
  124.             If AutoSwitchTMR.Enabled = False Then
  125.                 AddHandler AutoSwitchTMR.Tick, AddressOf AutoSwitch_TMRTICK
  126.                 AutoSwitchTMR.Start()
  127.             End If
  128.         End If
  129.         MaxSelectedItemIndex = i - 1
  130.         If Me.Style = Stle.Regular Then
  131.             'Button Left
  132.            e.Graphics.FillRectangle(New SolidBrush(Fill_Color), New Rectangle(0, Height / 2 - 10, 20, 20))
  133.             e.Graphics.DrawRectangle(New Pen(Border_Color), New Rectangle(0, Height / 2 - 10, 20, 20))
  134.             e.Graphics.DrawString("<", Font, Brushes.White, New Rectangle(0, Height / 2 - 10, 20, 20), New StringFormat With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center})
  135.             'Button Right
  136.            e.Graphics.FillRectangle(New SolidBrush(Fill_Color), New Rectangle(Width - 21, Height / 2 - 10, 20, 20))
  137.             e.Graphics.DrawRectangle(New Pen(Border_Color), New Rectangle(Width - 21, Height / 2 - 10, 20, 20))
  138.             e.Graphics.DrawString(">", Font, Brushes.White, New Rectangle(Width - 21, Height / 2 - 10, 20, 20), New StringFormat With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center})
  139.             'Main/Middle
  140.            'Frame
  141.            e.Graphics.FillRectangle(New SolidBrush(Fill_Color), New Rectangle(30, 0, Width - 60, Height))
  142.             e.Graphics.DrawRectangle(New Pen(Border_Color), New Rectangle(30, 0, Width - 60, Height - 1))
  143.             'clear Last or any remaining picture boxs
  144.            For Each Pic As PictureBox In Me.Controls.OfType(Of PictureBox)()
  145.                 Pic.Dispose()
  146.             Next
  147.             'Display Items
  148.            For Each Item As Item In _Items
  149.                 If SelectedItemIndex = Item.OrderNumber Then
  150.                     If Item.LoadOption = ImageSlider.Item.Kind.PictureBox Then
  151.                         If Item.PictureLink = False Then
  152.                             Dim pic2 As New PictureBox
  153.                             pic2.Location = New Point(35, 5)
  154.                             pic2.Size = New Size(Width - 70, Height - 10)
  155.                             pic2.Image = Item.Image
  156.                             AddHandler pic2.Paint, AddressOf pic_paint
  157.                             If Item.PictureSizemode = ImageSlider.Item.Type.StretchImage Then
  158.                                 pic2.SizeMode = PictureBoxSizeMode.StretchImage
  159.                             ElseIf Item.PictureSizemode = ImageSlider.Item.Type.Normal Then
  160.                                 pic2.SizeMode = PictureBoxSizeMode.Normal
  161.                             ElseIf Item.PictureSizemode = ImageSlider.Item.Type.CenterImage Then
  162.                                 pic2.SizeMode = PictureBoxSizeMode.CenterImage
  163.                             ElseIf Item.PictureSizemode = ImageSlider.Item.Type.Zoom Then
  164.                                 pic2.SizeMode = PictureBoxSizeMode.Zoom
  165.                             End If
  166.                             Me.Controls.Add(pic2)
  167.                         Else
  168.                             Dim pic2 As New PictureBox
  169.                             pic2.Location = New Point(35, 5)
  170.                             pic2.Size = New Size(Width - 70, Height - 10)
  171.                             pic2.LoadAsync(Item.URL_LINK)
  172.                             AddHandler pic2.Paint, AddressOf pic_paint
  173.                             If Item.PictureSizemode = ImageSlider.Item.Type.StretchImage Then
  174.                                 pic2.SizeMode = PictureBoxSizeMode.StretchImage
  175.                             ElseIf Item.PictureSizemode = ImageSlider.Item.Type.Normal Then
  176.                                 pic2.SizeMode = PictureBoxSizeMode.Normal
  177.                             ElseIf Item.PictureSizemode = ImageSlider.Item.Type.CenterImage Then
  178.                                 pic2.SizeMode = PictureBoxSizeMode.CenterImage
  179.                             ElseIf Item.PictureSizemode = ImageSlider.Item.Type.Zoom Then
  180.                                 pic2.SizeMode = PictureBoxSizeMode.Zoom
  181.                             End If
  182.                             Me.Controls.Add(pic2)
  183.                         End If
  184.                     Else
  185.                         If Item.PictureLink = False Then
  186.                             e.Graphics.DrawImage(Item.Image, New Rectangle(35, 5, Width - 70, Height - 10))
  187.                         Else
  188.                             e.Graphics.DrawImage(New System.Drawing.Bitmap(New IO.MemoryStream(New System.Net.WebClient().DownloadData(Item.URL_LINK))), New Rectangle(35, 5, Width - 70, Height - 10))
  189.                         End If
  190.                     End If
  191.                 End If
  192.                 'Display Text
  193.                If Item.DisplayText = True Then
  194.                     e.Graphics.FillRectangle(New SolidBrush(Fill_Color), New Rectangle(40, 5, Width - 80, 20))
  195.                     e.Graphics.DrawRectangle(New Pen(Border_Color), New Rectangle(40, 5, Width - 80, 20))
  196.                     e.Graphics.DrawString(Item.Text, Font, New SolidBrush(Item.Text_Color), New Rectangle(40, 5, Width - 80, 20), New StringFormat With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center})
  197.                 End If
  198.             Next
  199.         ElseIf Me.Style = Stle.Steam Then
  200.             'Border/Main
  201.            e.Graphics.FillRectangle(New SolidBrush(Fill_Color), New Rectangle(2, 2, Me.Width - 5, Me.Height - 5))
  202.             e.Graphics.DrawRectangle(New Pen(Border_Color), New Rectangle(2, 2, Me.Width - 5, Me.Height - 5))
  203.             'Split Box
  204.            e.Graphics.FillRectangle(New SolidBrush(Fill_Color), New Rectangle(2, Me.Height - 33, Me.Width - 5, 30))
  205.             e.Graphics.DrawRectangle(New Pen(Border_Color), New Rectangle(2, Me.Height - 33, Me.Width - 5, 30))
  206.             'Button Next
  207.            e.Graphics.FillRectangle(New SolidBrush(Fill_Color), New Rectangle(Width - 41, Me.Height - 25, 35, 15))
  208.             e.Graphics.DrawRectangle(New Pen(Border_Color), New Rectangle(Width - 41, Me.Height - 25, 35, 15))
  209.             e.Graphics.DrawString("Next", Font, Brushes.White, New Rectangle(Width - 41, Me.Height - 25, 35, 15), New StringFormat With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center})
  210.             'Button Back
  211.            e.Graphics.FillRectangle(New SolidBrush(Fill_Color), New Rectangle(Width - 81, Me.Height - 25, 35, 15))
  212.             e.Graphics.DrawRectangle(New Pen(Border_Color), New Rectangle(Width - 81, Me.Height - 25, 35, 15))
  213.             e.Graphics.DrawString("Back", Font, Brushes.White, New Rectangle(Width - 81, Me.Height - 25, 35, 15), New StringFormat With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center})
  214.             'clear Pics
  215.            For Each Pic As PictureBox In Me.Controls.OfType(Of PictureBox)()
  216.                 Pic.Dispose()
  217.             Next
  218.             'Display Items
  219.            For Each Item As Item In Items
  220.                 If SelectedItemIndex = Item.OrderNumber Then '<- Fine
  221.                    If Item.LoadOption = ImageSlider.Item.Kind.PictureBox Then
  222.                         If Item.PictureLink = False Then
  223.                             Dim pic2 As New PictureBox
  224.                             pic2.Location = New Point(5, 5)
  225.                             pic2.Size = New Size(Me.Width - 10, Me.Height - 40)
  226.                             pic2.Image = Item.Image
  227.                             If Item.PictureSizemode = ImageSlider.Item.Type.StretchImage Then
  228.                                 pic2.SizeMode = PictureBoxSizeMode.StretchImage
  229.                             ElseIf Item.PictureSizemode = ImageSlider.Item.Type.Normal Then
  230.                                 pic2.SizeMode = PictureBoxSizeMode.Normal
  231.                             ElseIf Item.PictureSizemode = ImageSlider.Item.Type.CenterImage Then
  232.                                 pic2.SizeMode = PictureBoxSizeMode.CenterImage
  233.                             ElseIf Item.PictureSizemode = ImageSlider.Item.Type.Zoom Then
  234.                                 pic2.SizeMode = PictureBoxSizeMode.Zoom
  235.                             End If
  236.                             Me.Controls.Add(pic2)
  237.                         Else
  238.                             Dim pic2 As New PictureBox
  239.                             pic2.Location = New Point(5, 5)
  240.                             pic2.Size = New Size(Me.Width - 10, Me.Height - 40)
  241.                             pic2.LoadAsync(Item.URL_LINK)
  242.                             If Item.PictureSizemode = ImageSlider.Item.Type.StretchImage Then
  243.                                 pic2.SizeMode = PictureBoxSizeMode.StretchImage
  244.                             ElseIf Item.PictureSizemode = ImageSlider.Item.Type.Normal Then
  245.                                 pic2.SizeMode = PictureBoxSizeMode.Normal
  246.                             ElseIf Item.PictureSizemode = ImageSlider.Item.Type.CenterImage Then
  247.                                 pic2.SizeMode = PictureBoxSizeMode.CenterImage
  248.                             ElseIf Item.PictureSizemode = ImageSlider.Item.Type.Zoom Then
  249.                                 pic2.SizeMode = PictureBoxSizeMode.Zoom
  250.                             End If
  251.                             Me.Controls.Add(pic2)
  252.                         End If
  253.                     Else
  254.                         If Item.PictureLink = False Then
  255.                             e.Graphics.DrawImage(Item.Image, New Rectangle(5, 5, Me.Width - 10, Me.Height - 40))
  256.                         Else
  257.                             e.Graphics.DrawImage(New System.Drawing.Bitmap(New IO.MemoryStream(New System.Net.WebClient().DownloadData(Item.URL_LINK))), New Rectangle(5, 5, Me.Width - 10, Me.Height - 40))
  258.                         End If
  259.                     End If
  260.  
  261.                     'Text Display
  262.                    If Item.DisplayText = True Then
  263.                         e.Graphics.FillRectangle(New SolidBrush(Fill_Color), New Rectangle(4, Me.Height - 28, Width - 88, 20))
  264.                         e.Graphics.DrawRectangle(New Pen(Border_Color), New Rectangle(4, Me.Height - 28, Width - 88, 20))
  265.                         e.Graphics.DrawString(Item.Text, Font, New SolidBrush(Item.Text_Color), New Rectangle(4, Me.Height - 28, Width - 88, 20), New StringFormat With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center})
  266.                     End If
  267.                 End If
  268.             Next
  269.         ElseIf Me.Style = Stle.Header Then
  270.             'Border/Main
  271.            e.Graphics.FillRectangle(New SolidBrush(Fill_Color), New Rectangle(2, 2, Me.Width - 5, Me.Height - 5))
  272.             e.Graphics.DrawRectangle(New Pen(Border_Color), New Rectangle(2, 2, Me.Width - 5, Me.Height - 5))
  273.             'Split Box
  274.            e.Graphics.FillRectangle(New SolidBrush(Fill_Color), New Rectangle(2, Me.Height - 33, Me.Width - 5, 30))
  275.             e.Graphics.DrawRectangle(New Pen(Border_Color), New Rectangle(2, Me.Height - 33, Me.Width - 5, 30))
  276.             'Clear Pics
  277.            For Each Pic As PictureBox In Me.Controls.OfType(Of PictureBox)()
  278.                 Pic.Dispose()
  279.             Next
  280.             For Each Item As Item In Items
  281.                 'Circle Buttons
  282.                Dim num As Integer = Item.OrderNumber
  283.                 num += 1
  284.                 If SelectedItemIndex = Item.OrderNumber Then
  285.                     e.Graphics.FillEllipse(New SolidBrush(Me.Header_Selected_Color), New Rectangle(num * 25, Me.Height - 28, 20, 20))
  286.                 Else
  287.                     e.Graphics.FillEllipse(New SolidBrush(Me.Fill_Color), New Rectangle(num * 25, Me.Height - 28, 20, 20))
  288.                 End If
  289.                 e.Graphics.DrawEllipse(New Pen(Me.Border_Color), New Rectangle(num * 25, Me.Height - 28, 20, 20))
  290.                 'Display ITems
  291.                If SelectedItemIndex = Item.OrderNumber Then '<- Fine
  292.                    If Item.LoadOption = ImageSlider.Item.Kind.PictureBox Then
  293.                         If Item.PictureLink = False Then
  294.                             Dim pic2 As New PictureBox
  295.                             pic2.Location = New Point(5, 5)
  296.                             pic2.Size = New Size(Me.Width - 10, Me.Height - 40)
  297.                             pic2.Image = Item.Image
  298.                             AddHandler pic2.Paint, AddressOf pic_paint
  299.                             If Item.PictureSizemode = ImageSlider.Item.Type.StretchImage Then
  300.                                 pic2.SizeMode = PictureBoxSizeMode.StretchImage
  301.                             ElseIf Item.PictureSizemode = ImageSlider.Item.Type.Normal Then
  302.                                 pic2.SizeMode = PictureBoxSizeMode.Normal
  303.                             ElseIf Item.PictureSizemode = ImageSlider.Item.Type.CenterImage Then
  304.                                 pic2.SizeMode = PictureBoxSizeMode.CenterImage
  305.                             ElseIf Item.PictureSizemode = ImageSlider.Item.Type.Zoom Then
  306.                                 pic2.SizeMode = PictureBoxSizeMode.Zoom
  307.                             End If
  308.                             Me.Controls.Add(pic2)
  309.                         Else
  310.                             Dim pic2 As New PictureBox
  311.                             pic2.Location = New Point(5, 5)
  312.                             pic2.Size = New Size(Me.Width - 10, Me.Height - 40)
  313.                             pic2.LoadAsync(Item.URL_LINK)
  314.                             AddHandler pic2.Paint, AddressOf pic_paint
  315.                             If Item.PictureSizemode = ImageSlider.Item.Type.StretchImage Then
  316.                                 pic2.SizeMode = PictureBoxSizeMode.StretchImage
  317.                             ElseIf Item.PictureSizemode = ImageSlider.Item.Type.Normal Then
  318.                                 pic2.SizeMode = PictureBoxSizeMode.Normal
  319.                             ElseIf Item.PictureSizemode = ImageSlider.Item.Type.CenterImage Then
  320.                                 pic2.SizeMode = PictureBoxSizeMode.CenterImage
  321.                             ElseIf Item.PictureSizemode = ImageSlider.Item.Type.Zoom Then
  322.                                 pic2.SizeMode = PictureBoxSizeMode.Zoom
  323.                             End If
  324.                             Me.Controls.Add(pic2)
  325.                         End If
  326.                     Else
  327.                         If Item.PictureLink = False Then
  328.                             e.Graphics.DrawImage(Item.Image, New Rectangle(5, 5, Me.Width - 10, Me.Height - 40))
  329.                         Else
  330.                             e.Graphics.DrawImage(New System.Drawing.Bitmap(New IO.MemoryStream(New System.Net.WebClient().DownloadData(Item.URL_LINK))), New Rectangle(5, 5, Me.Width - 10, Me.Height - 40))
  331.                         End If
  332.                     End If
  333.  
  334.                     'Text Display
  335.                    If Item.DisplayText = True Then
  336.                         e.Graphics.FillRectangle(New SolidBrush(Fill_Color), New Rectangle(40, 5, Width - 80, 20))
  337.                         e.Graphics.DrawRectangle(New Pen(Border_Color), New Rectangle(40, 5, Width - 80, 20))
  338.                         e.Graphics.DrawString(Item.Text, Font, New SolidBrush(Item.Text_Color), New Rectangle(40, 5, Width - 80, 20), New StringFormat With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center})
  339.                     End If
  340.                 End If
  341.             Next
  342.         End If
  343.     End Sub
  344.     'Button Presses
  345. #Region "Button Press"
  346.  
  347.  
  348.     Protected Overrides Sub OnMouseDown(e As MouseEventArgs)
  349.         'Right Button Click
  350.        If Me.Style = Stle.Regular Then
  351.             Dim clickRect As New Rectangle(Width - 21, Height / 2 - 10, 20, 20)
  352.             If clickRect.Contains(New Point(e.X, e.Y)) Then
  353.                 If Not SelectedItemIndex = MaxSelectedItemIndex Then
  354.                     SelectedItemIndex += 1
  355.                 Else
  356.                     SelectedItemIndex = 0
  357.                 End If
  358.             End If
  359.             'Left Button
  360.            Dim clickRect2 As New Rectangle(0, Height / 2 - 10, 20, 20)
  361.             If clickRect2.Contains(New Point(e.X, e.Y)) Then
  362.                 If Not SelectedItemIndex = 0 Then
  363.                     SelectedItemIndex -= 1
  364.                 Else
  365.                     SelectedItemIndex = MaxSelectedItemIndex
  366.                 End If
  367.             End If
  368.             Me.Refresh()
  369.         ElseIf Me.Style = Stle.Steam Then
  370.             Dim clickRect As New Rectangle(Width - 81, Me.Height - 25, 35, 15)
  371.             If clickRect.Contains(New Point(e.X, e.Y)) Then
  372.                 If Not SelectedItemIndex = MaxSelectedItemIndex Then
  373.                     SelectedItemIndex += 1
  374.                 Else
  375.                     SelectedItemIndex = 0
  376.                 End If
  377.             End If
  378.             'Left Button
  379.            Dim clickRect2 As New Rectangle(Width - 41, Me.Height - 25, 35, 15)
  380.             If clickRect2.Contains(New Point(e.X, e.Y)) Then
  381.                 If Not SelectedItemIndex = 0 Then
  382.                     SelectedItemIndex -= 1
  383.                 Else
  384.                     SelectedItemIndex = MaxSelectedItemIndex
  385.                 End If
  386.             End If
  387.             Me.Refresh()
  388.         ElseIf Me.Style = Stle.Header Then
  389.             For Each Item As Item In _Items
  390.                 Dim num As Integer = Item.OrderNumber
  391.                 num += 1
  392.                 If New Rectangle(num * 25, Me.Height - 28, 20, 20).Contains(New Point(e.X, e.Y)) Then
  393.                     num -= 1
  394.                     SelectedItemIndex = num
  395.                 End If
  396.             Next
  397.             Me.Refresh()
  398.         End If
  399.         MyBase.OnMouseDown(e)
  400.     End Sub
  401.  
  402.     Protected Overrides Sub OnMouseUp(e As MouseEventArgs)
  403.  
  404.         MyBase.OnMouseUp(e)
  405.     End Sub
  406.  
  407.     Private mouseX As Integer
  408.     Private mouseY As Integer
  409.     Protected Overrides Sub OnMouseMove(e As MouseEventArgs)
  410.         mouseX = e.X
  411.         mouseY = e.Y
  412.  
  413.         MyBase.OnMouseMove(e)
  414.         Invalidate()
  415.     End Sub
  416.  
  417. #End Region
  418.  
  419.     Private Sub AutoSwitch_TMRTICK(sender As Object, e As EventArgs)
  420.         If Not SelectedItemIndex = MaxSelectedItemIndex Then
  421.             SelectedItemIndex += 1
  422.             Me.Refresh()
  423.         Else
  424.             SelectedItemIndex = 0
  425.             Me.Refresh()
  426.         End If
  427.  
  428.     End Sub
  429.  
  430.     Private Sub pic2LC(sender As Object, e As AsyncCompletedEventArgs)
  431.         Throw New NotImplementedException
  432.     End Sub
  433.  
  434.     Private Sub pic_paint(sender As Object, e As PaintEventArgs)
  435.         For Each Item As Item In _Items
  436.             If Item.OrderNumber = SelectedItemIndex Then
  437.                 If Item.DisplayText = True Then
  438.                     If Me.Style = Stle.Regular Then
  439.                         e.Graphics.FillRectangle(New SolidBrush(Fill_Color), New Rectangle(5, 5, Me.Width - 80, 20))
  440.                         e.Graphics.DrawRectangle(New Pen(Border_Color), New Rectangle(5, 5, Me.Width - 80, 20))
  441.                         e.Graphics.DrawString(Item.Text, Font, New SolidBrush(Item.Text_Color), New Rectangle(5, 5, Me.Width - 80, 20), New StringFormat With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center})
  442.                     ElseIf Style = Stle.Header Then
  443.                         e.Graphics.FillRectangle(New SolidBrush(Fill_Color), New Rectangle(40, 5, Width - 80, 20))
  444.                         e.Graphics.DrawRectangle(New Pen(Border_Color), New Rectangle(40, 5, Width - 80, 20))
  445.                         e.Graphics.DrawString(Item.Text, Font, New SolidBrush(Item.Text_Color), New Rectangle(40, 5, Width - 80, 20), New StringFormat With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center})
  446.                     End If
  447.                 End If
  448.             End If
  449.         Next
  450.      
  451.     End Sub
  452.  
  453. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement