Hallo, ich habe eine eigene ListBox-klasse entworfen, die mir es
ermöglicht, den selektierten Eintrag farblich darzustellen (Hintergrund,
Schriftfarbe) wo wie ich es möchte. Ich möchte nun aber beim Verlassen der ListBox, wo praktisch
die ListBox den Focus verliert, erreichen, dass der soeben selektierte
Eintrag wieder mit weißem Hintergrund und schwarzer Schriftfarbe dargestellt
wird. Hier die Routine der ListBox-Klasse, welche es mir
ermöglicht Hintergrund, Schriftart usw. selbst zu definieren. e.DrawBackground() If (e.State And DrawItemState.Selected) =
DrawItemState.Selected Then e.Graphics.FillRectangle(System.Drawing.Brushes.LightGray,
New RectangleF(e.Bounds.X, e.Bounds.Y, e.Bounds.X + 30,
e.Bounds.Height)) e.Graphics.DrawLine(System.Drawing.Pens.White,
e.Bounds.X + 30, e.Bounds.Y, e.Bounds.X + 30, e.Bounds.Y + Me.FontHeight + 2) e.Graphics.DrawString(DirectCast(sender, MyListBox).Items(e.Index).ToString, myFont,
System.Drawing.Brushes.Black, New RectangleF(e.Bounds.X, e.Bounds.Y, e.Bounds.Width,
e.Bounds.Height)) e.Graphics.DrawString(_HT.Item(DirectCast(sender, MyListBox).Items(e.Index)).ToString, myFont,
System.Drawing.Brushes.White, New RectangleF(e.Bounds.X + 35, e.Bounds.Y, e.Bounds.Width -
35, e.Bounds.Height)) Else
e.Graphics.FillRectangle(System.Drawing.Brushes.White, e.Bounds) e.Graphics.DrawLine(System.Drawing.Pens.White,
e.Bounds.X + 30, e.Bounds.Y, e.Bounds.X + 30, e.Bounds.Y + Me.FontHeight + 2) e.Graphics.DrawString(DirectCast(sender, MyListBox).Items(e.Index).ToString, myFont,
System.Drawing.Brushes.Black, New RectangleF(e.Bounds.X, e.Bounds.Y, e.Bounds.Width,
e.Bounds.Height)) e.Graphics.DrawString(_HT.Item(DirectCast(sender, MyListBox).Items(e.Index)).ToString, myFont,
System.Drawing.Brushes.Black, New RectangleF(e.Bounds.X + 35, e.Bounds.Y, e.Bounds.Width -
35, e.Bounds.Height)) End If Dank und Grüße Oskar |