Hallo
DP ,
ich hab mal wieder ein Problem in Sachen C#. Diesmal versuche ich einen ListBox-Eintrag einzufärben. Das funktioniert soweit eigentlich, alledings kann man nicht mehr die Markierung sehen. Also mal ein wenig rumprobiert. Dabei kam raus, das diese hervorhebung nur dann zu sehen ist, wenn ich nichts auf den Hintergrund zeiche.
Also folgendes im DrawItem-Event geschrieben:
Code:
e.DrawBackground();
if (e.Index != lbTagsControll.SelectedIndex)
{
e.Graphics.FillRectangle(Brushes.LightGreen, e.Bounds.Left, e.Bounds.Top, 774, 13);
}
e.Graphics.DrawString(lbTagsControll.Items[e.Index].ToString(), e.Font, Brushes.Black, (new PointF(e.Bounds.Left, e.Bounds.Top)));
e.DrawFocusRectangle();
Mein Problem ist jetzt aber, das wenn ich jetzt eins gewählt hatte, und dann einen anderen Eintrag auswähle, der alte weiß bleibt, obwohl er nicht mehr ausgewählt ist. Wenn ich die Pfeiltasten zum scrollen benutze färben die sich sogar beim Scrollen nicht um, nutze ich die Maus, werden sie verspätet gezeichnet.
Ein ansatz war ListBox.Invalidate(), allerdings hing anschließend das ganze Programm, auch ein Application.DoEvents() brachte keinen Erfolg.
Wie kriege ich es jetzt hin, dass diese richtig gezeichnet werden?