Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [C#] ListBox-Eintrag einfärben (https://www.delphipraxis.net/136445-%5Bc-%5D-listbox-eintrag-einfaerben.html)

TurboMartin 30. Jun 2009 19:34


[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:
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?

cruiser 30. Jun 2009 19:56

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 17:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz