<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>Draw images to a listbox and control font settings for each item</Title>
      <Shortcut>Drawimagestoalistboxandcontrolfontsettingsforeachitem</Shortcut>
      <Description>Draw images to a listbox and control font settings for each item [VB.NET]</Description>
      <Author>Matt Simmons</Author>
      <HelpUrl>/PreviewSnippet.aspx?SnippetID=9f655ec1-b89c-49fc-9698-b731255b5fdd</HelpUrl>
      <SnippetTypes>
        <SnippetType>SurroundsWith</SnippetType>
      </SnippetTypes>
    </Header>
    <Snippet>
      <Code Language="VB"><![CDATA['Declare handlers for these 2 events and set listbox to ownerdraw mode
Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
    Me.lbBusMon.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable
    'tell windows we are interested in drawing items in ListBox on our own
    AddHandler Me.lbBusMon.DrawItem, AddressOf Me.DrawItemHandler
    'tell windows we are interested in providing item size
    AddHandler Me.lbBusMon.MeasureItem, AddressOf Me.MeasureItemHandler
End Sub
'event hadnler for drawing
Private Sub DrawItemHandler(ByVal sender As Object, ByVal e As DrawItemEventArgs)
    e.DrawBackground()
    e.DrawFocusRectangle()
    Dim useImage As Image = Nothing
    e.Graphics.DrawString(lbBusMon.Items.Item(e.Index), New Font(FontFamily.GenericSansSerif, _
                                              8, FontStyle.Regular), New SolidBrush(Color.Black), e.Bounds)
    'load image from an ImageList control
    useImage = ilListBox.Images(1)
    If Not (useImage Is Nothing) Then
        Dim sz As SizeF = useImage.PhysicalDimension
        Dim x As Integer = CType(e.Bounds.Right - 20, Integer)
        Dim y As Integer = CType((e.Bounds.Bottom + e.Bounds.Top) / 2 - sz.Height / 2, Integer)
        e.Graphics.DrawImage(useImage, x, y)
    End If
End Sub 'DrawItemHandler
'event handler for size
Private Sub MeasureItemHandler(ByVal sender As Object, ByVal e As MeasureItemEventArgs)
    e.ItemHeight = 14
End Sub 'MeasureItemHandler
]]></Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>