title: Highlighting Listbox Item when Mouseover on Item
body: <p>I manage to customize the normal list box with an image, change text and background color when item is selected in ownerdrawn, what I want to achieve now is to drawn a custom highlight color on the item when mouse is hover on the listbox item, is that possible or not..., I provided my sample code below on what I come so far..</p>
  
  <pre><code>If e.Index = -1 Then Exit Sub
          Dim listBox As ListBox = CType(sender, ListBox)
          e.DrawBackground()
          Dim isItemSelected As Boolean = ((e.State And DrawItemState.Selected) = DrawItemState.Selected)
          If e.Index &gt;= 0 AndAlso e.Index &lt; listBox.Items.Count Then
              Dim textSize As SizeF = e.Graphics.MeasureString(listBox.Items(e.Index).ToString(), listBox.Font)
              Dim itemImage As Image = My.Resources.FolderHorizontal
              'set background and text color
              Dim backgroundColorBrush As New SolidBrush(If((isItemSelected), Color.CornflowerBlue, Color.White))
              Dim itemTextColorBrush As Color = If((isItemSelected), Color.White, Color.Black)
  
              e.Graphics.FillRectangle(backgroundColorBrush, e.Bounds)
              'draw the item image
              e.Graphics.SmoothingMode = SmoothingMode.HighQuality
              e.Graphics.DrawImage(itemImage, e.Bounds.X + 2, _
                                 e.Bounds.Y + (e.Bounds.Height - textSize.Height) / 2, _
                                 itemImage.Width, itemImage.Height)
              'draw the item text
              Dim x, y As Single
              Dim h As Single = textSize.Height
              Dim rect As Rectangle = e.Bounds
              rect.X += listBox.ItemHeight
              rect.Width -= listBox.ItemHeight
  
              x = rect.X - 3
              y = rect.Y + (rect.Height - h) / 2
  
              Dim itemText As String = listBox.Items(e.Index).ToString()
              TextRenderer.DrawText(e.Graphics, itemText, e.Font, _
                                    New Rectangle(x, y, ClientRectangle.Width, ClientRectangle.Height), _
                                    itemTextColorBrush, TextFormatFlags.Default)
              'clean up
              backgroundColorBrush.Dispose()
  
          End If
          e.DrawFocusRectangle()
  </code></pre>