Hallo zusammen,
Habe hier einen kleinen Code gebastelt mitdem Ihr eine ListBox abwechselnd farblich hinterlegen könnt!
Ich dachte mir vielleicht kann es ja noch jemand gebrauchen!
Benötigt wird: 1x ListBox, 1x CheckBox
ListBox1:
In den Eigenschaften stellt Ihr den Punkt DrawMode auf OwnerDrawFixed
CheckBox1:
Danach müßt Ihr das Neu Zeichnen manuell modifizieren:
So ich hoffe mal das jemand damit was anfangen kann!
Greetz Euer Günni
Habe hier einen kleinen Code gebastelt mitdem Ihr eine ListBox abwechselnd farblich hinterlegen könnt!
Ich dachte mir vielleicht kann es ja noch jemand gebrauchen!
Benötigt wird: 1x ListBox, 1x CheckBox
ListBox1:
In den Eigenschaften stellt Ihr den Punkt DrawMode auf OwnerDrawFixed
CheckBox1:
Danach müßt Ihr das Neu Zeichnen manuell modifizieren:
VB.NET-Quellcode
- 'ListBoxItems Zeichnen manuell modifizieren (ListBoxDrawMode muß auf OwnerDrawFixed gestellt sein)
- Private Sub OnDrawItem(ByVal sender As Object, ByVal e As DrawItemEventArgs) Handles ListBox1.DrawItem
- 'Schriftfarbe zuweisen
- Dim Schriftfarbe As String = "Black"
- 'Item und Itembegrenzungen ermitteln
- Dim Item As Object
- Dim Itembegrenzung As Rectangle = e.Bounds
- 'Hier wird der Itemindex ermittelt, wenn negativ auf Null gesetzt
- Try
- 'Index des jeweiligen Items zuweisen
- Item = ListBox1.Items(e.Index)
- Catch ex As Exception
- 'Wenn negativ auf Null stellen
- Item = CObj("0")
- End Try
- 'Prüfen ob jeweiliges Item farblich Hinterlegt wird
- If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then
- 'Wenn Selektiert wird es hervorgehoben
- e.Graphics.FillRectangle(SystemBrushes.Highlight, Itembegrenzung)
- 'Schriftfarbe zuweisen
- Schriftfarbe = "White"
- ElseIf ListBox1.Items.IndexOf(Item) Mod 2 = 0 Then
- 'Wenn Zeile gerade wird es nicht hinterlegt
- e.Graphics.FillRectangle(SystemBrushes.Window, Itembegrenzung)
- 'Schriftfarbe zuweisen
- Schriftfarbe = "black"
- Else
- 'Wenn Zeilen nicht gerade und nicht selektiert
- 'Prüfen ob Zeilen hinterlegen aktiviert ist
- If Me.CheckBox1.Checked = True Then
- 'Wenn aktiviert hinterlegen
- e.Graphics.FillRectangle(Brushes.Moccasin, Itembegrenzung)
- ElseIf Me.CheckBox1.Checked = False Then
- 'Wenn deaktiviert nicht hinterlegen
- e.Graphics.FillRectangle(SystemBrushes.Window, Itembegrenzung)
- End If
- 'Schriftfarbe zuweisen
- Schriftfarbe = "black"
- End If
- 'Stift aktivieren und Stiftfarbe zuweisen
- Dim Stiftart As New SolidBrush(Color.FromName(Schriftfarbe))
- 'Schriftart und Schriftstil festlegen
- Dim Schriftart As Font
- Schriftart = New Font(e.Font, FontStyle.Regular)
- 'Aktuelles Item modifiziert Zeichnen
- e.Graphics.DrawString(Item, Schriftart, Stiftart, Itembegrenzung.X, Itembegrenzung.Y)
- 'Stift und Schriftstil zurücksetzen
- Stiftart.Dispose()
- Schriftart.Dispose()
- End Sub
So ich hoffe mal das jemand damit was anfangen kann!
Greetz Euer Günni