Tipp 0106 Mehrspaltige ListBox
Autor/Einsender:
Datum:
  Michael Werner
11.02.2006
Entwicklungsumgebung:   VB.Net 2003
Framework:   1.1
Oft erwünscht und mit Anzeigekonstanten wie z. B. vbTab nie sauber hinzukriegen, ist eine Spaltendarstellung in einer Listbox bzw. ComboBox. Mit Hilfe des Ereignisses DrawItem der ListBox ist ein genaues Positionieren der Spalten möglich. Das Ereignis DrawItem wird ausgelöst, wenn die DrawMode-Eigenschaft der ListBox auf DrawMode.OwnerDrawFixed gestellt wird. Dadurch ist es möglich, in diesem Event per DrawString die Listboxeinträge zu zeichnen und mit dem vorletzten Parameter (x-Position) einen Spaltenabstand zu definieren.
 
Private Sub ListBox1_DrawItem(ByVal sender As Object, _
      ByVal e As System.Windows.Forms.DrawItemEventArgs) _
      Handles ListBox1.DrawItem

  If e.Index < 0 Then Exit Sub

  ' Person-Objekt ermitteln
  Dim pers As Person = DirectCast(ListBox1.Items(e.Index), Person)

  ' Brush zum Zeichnen des Textes
  Dim brush1 As New SolidBrush(e.ForeColor)

  ' Hintergrund zeichnen
  e.DrawBackground()

  ' Text für Eigenschaft Name ausgeben
  e.Graphics.DrawString(pers.Name, ListBox1.Font, brush1, _
        e.Bounds.X, e.Bounds.Y)

  ' Text für Eigenschaft Email ausgeben
  e.Graphics.DrawString(pers.Email, ListBox1.Font, brush1, _
        e.Bounds.X + 150, e.Bounds.Y)

  ' Text für Eigenschaft Alter ausgeben
  e.Graphics.DrawString(pers.Alter, ListBox1.Font, brush1, _
        e.Bounds.X + 300, e.Bounds.Y)

  ' Ressourcen freigeben
  brush1.Dispose()

End Sub
 
Weitere Links zum Thema
ListBox numerisch sortieren
ListBox-Einträge speichern und einlesen
ListBox-Einträge verschieben

Windows-Version
98/SE
ME
NT
2000
XP
Vista
Win 7


Download  (7,7 kB) Downloads bisher: [ 788 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Tipps | Projekte | Tutorials | Bücherecke | VB-/VBA-Tipps | API-Referenz | Komponenten | VB.Net-Forum | VB/VBA-Forum | DirectX-Forum | Foren-Archiv | DirectX | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 25. Dezember 2011