![]() |
[C#] ListBox-Eintrag einfärben
Hallo DP :hi: ,
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:
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.
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(); 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? |
Re: [C#] ListBox-Eintrag einfärben
Hab das eben mal getested
Hast du das listBox1.Invalidate(); auch im Event SelectedIndexChanged drin? damit läufts doch einwandfrei? Fürs nächste Mal wäre der Methodenkopf nich verkehrt. Und ein Invalidate() (löst neuzeichnen aus) während du neu zeichnest, muss in einer Endlosschleife enden. Da hilft dir Auch Application.DoEvents(); nichts mehr |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz