Hej! När skall detta ske? Vid vid val av item i ListBox eller? Jag lägger till items till listboxen i en for loop, med i(t ex) som räknare. När i är ett visst värde så vill jag när jag lägger till itemet också sätta färg på bakgrunden för just det itemet. Någotsådant.. dock att du måste få den listitem's index du vill måla på något sätt..Ändra färg på rad/item i en listbox
Har suttit o sökt några timmar nu efter hur man lägger till en bakgrundsfärg på en rad/item i en Listbox. Är det någon som har ett förslag?
Jag har hittat DrawItem eventet, men vill inte att det ska startas av sig själv. Hur anropar jag det manuellt i koden? Finns det ett annat bättre sätt att göra det på? Allra helst skulle jag vilja göra det när jag addar itemet till listboxen.
Tacksam för hjälp!
//JohannaSv: Ändra färg på rad/item i en listbox
I alla fall, här finns lite om DrawItem;
http://www.csharping.com/CommentView,guid,0c91383d-b201-4e51-b0bc-f3bc35ecd5ff.aspx
Om det inte är den du redan har kolla på. :)Sv:Ändra färg på rad/item i en listbox
Jag har hittat nåt liknande men eftersom jag inte vill att den ska gå igång automatiskt så vill jag ju anropa listbox_DrawItem själv. Funkar det? Hur anropar jag den? listbox_DrawItem(?,?)...Sv: Ändra färg på rad/item i en listbox
Men då har du lite att leka med i alla fall...
<code>private void ListBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
// Rita bakgrund för varje listitem.
e.DrawBackground();
// Sätt en default färg för listitem. ex. svart eller något.
Brush myBrush = Brushes.Black;
// måla den listitem med index = YourIndex, i ex. rödfärg.
if(e.Index == YourIndex)
{
// färg.
myBrush = Brushes.Red;
}
// rita nuvarande listitem text baserad på nuvarande font.
// och de valda färgerna.
e.Graphics.DrawString(ListBox1.Items[e.Index].ToString(),
e.Font, myBrush, e.Bounds, StringFormat.GenericDefault);
// Om Listboxen har en focus, rita en fokus rektangel.
e.DrawFocusRectangle();
}
</code>