Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Data Viewer - ItemBox.vb

ItemBox.vb

Caricato da: Totem
Scarica il programma completo

  1. Imports System.Reflection
  2. Public Class ItemBox
  3.     Private _Color As Color
  4.     Private _Text As String
  5.     Private _Overloaded As Boolean = False
  6.     Private _ExposedMembers As New List(Of MemberInfo)
  7.     Private IsHover As Boolean
  8.  
  9.     Public Property Color() As Color
  10.         Get
  11.             Return _Color
  12.         End Get
  13.         Set(ByVal value As Color)
  14.             _Color = value
  15.         End Set
  16.     End Property
  17.  
  18.     Public Property Overloaded() As Boolean
  19.         Get
  20.             Return _Overloaded
  21.         End Get
  22.         Set(ByVal value As Boolean)
  23.             _Overloaded = True
  24.         End Set
  25.     End Property
  26.  
  27.     Public ReadOnly Property ExposedMembers() As List(Of MemberInfo)
  28.         Get
  29.             Return _ExposedMembers
  30.         End Get
  31.     End Property
  32.  
  33.     Public Overrides Property Text() As String
  34.         Get
  35.             Return _Text
  36.         End Get
  37.         Set(ByVal value As String)
  38.             _Text = value
  39.         End Set
  40.     End Property
  41.  
  42.     Public ReadOnly Property DefaultColors(ByVal Index As MemberTypes) As Color
  43.         Get
  44.             Select Case Index
  45.                 Case MemberTypes.NestedType
  46.                     Return Drawing.Color.SlateBlue
  47.                 Case MemberTypes.Constructor
  48.                     Return Drawing.Color.BlueViolet
  49.                 Case MemberTypes.Event
  50.                     Return Drawing.Color.DarkOrange
  51.                 Case MemberTypes.Method
  52.                     Return Drawing.Color.Violet
  53.                 Case MemberTypes.Property
  54.                     Return Drawing.Color.SteelBlue
  55.                 Case MemberTypes.Field
  56.                     Return Drawing.Color.DimGray
  57.             End Select
  58.         End Get
  59.     End Property
  60.  
  61.     Private Sub ItemBox_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
  62.         Dim M As New MenuItem
  63.         Dim Str As String = Me.Text
  64.         Dim StrColor As Color = Me.ForeColor
  65.         Dim StrSize As SizeF
  66.  
  67.         M.Size = New Size(Me.Size.Width - 1, Me.Size.Height - 1)
  68.         M.Location = New Point(0, 0)
  69.         M.Color = Me.Color
  70.  
  71.         StrSize = e.Graphics.MeasureString(Me.Text, Me.Font, 1000)
  72.  
  73.         If StrSize.Width > Me.Width * 9 / 10 Then
  74.             Str = Str.Remove(Str.Length * 8 / 10)
  75.             Str &= "..."
  76.         End If
  77.  
  78.         If StrSize.Height > Me.Height * 9 / 10 Then
  79.             Me.Height += (StrSize.Height - Me.Height) * 11 / 10
  80.         Else
  81.             Me.Height = 35
  82.         End If
  83.  
  84.         M.Draw(e.Graphics)
  85.         e.Graphics.DrawString(Str, Me.Font, New SolidBrush(Me.ForeColor), Me.Width / 2 - StrSize.Width / 2, Me.Height / 2 - StrSize.Height / 2 - 7)
  86.     End Sub
  87.  
  88.     Private Sub ItemBox_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.MouseEnter
  89.         IsHover = True
  90.         'Me.Refresh()
  91.     End Sub
  92.  
  93.     Private Sub ItemBox_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.MouseLeave
  94.         IsHover = False
  95.         'Me.Refresh()
  96.     End Sub
  97. End Class