Avatar billede deepcore Nybegynder
02. september 2005 - 11:41 Der er 8 kommentarer og
1 løsning

Hvordan sættes tekstfarve i på et enkelt item i en checkedlistbox

Jeg har behov for at kunne ændre tekstfarven på et checkedlistbox item ud fra den nummer i listen.

de items der ligger er blevet addet med Items.Add og er ikke bundet til en datasource.
Avatar billede anadan Nybegynder
02. september 2005 - 14:09 #1
Hvis du bruger 1.1 bliver det problematisk, hvis du bruger 2.0 kan du tilføje en DrawItem event handler til din checkedlistbox
Avatar billede anadan Nybegynder
02. september 2005 - 14:10 #2
Et eksempel med en normal ListBox:

private void listBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
  // Set the DrawMode property to draw fixed sized items.
  listBox1.DrawMode = DrawMode.OwnerDrawFixed;
  // Draw the background of the ListBox control for each item.
  e.DrawBackground();
  // Create a new Brush and initialize to a Black colored brush by default.
  Brush myBrush = Brushes.Black;

  // Determine the color of the brush to draw each item based on the index of the item to draw.
  switch (e.Index)
  {
      case 0:
        myBrush = Brushes.Red;
        break;
      case 1:
        myBrush = Brushes.Orange;
        break;
      case 2:
        myBrush = Brushes.Purple;
        break;
  }

  // Draw the current item text based on the current Font and the custom brush settings.
  e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, myBrush,e.Bounds,StringFormat.GenericDefault);
  // If the ListBox has focus, draw a focus rectangle around the selected item.
  e.DrawFocusRectangle();
}
Avatar billede deepcore Nybegynder
02. september 2005 - 15:47 #3
problemet er at så vidt jeg er informeret supporter checkedlistbox til forskel fra listbox ikke nogen DrawMode bortset fra DrawMode.Normal - alle andre DrawMode's bliver ignoreret.
... eller er jeg galt på den?
Avatar billede anadan Nybegynder
02. september 2005 - 15:50 #4
Det er helt korrekt. Der er dog kommet en løsning i .net 2.0. Se evt. http://msdn2.microsoft.com/library/6ctfkh36(en-us,vs.80).aspx
Avatar billede deepcore Nybegynder
05. september 2005 - 09:33 #5
aha... det ser jo rigtigt ud...
Nu bruger jeg Visual Studio 2003.... Ved du om der er en måde at tvinge den til at bruge .Net 2.0 ... eller skal man pinedød opgradere til VS2005?
Avatar billede anadan Nybegynder
05. september 2005 - 09:52 #6
Der er ikke nogen måde lige nu, mon ikke der kommer en patch når 2.0 er ude i final version? Indtil da er du vist nødt til at lave en manuel kompilering
Avatar billede deepcore Nybegynder
05. september 2005 - 15:34 #7
ok, jammen så gør jeg det. tak! svar lige, så jeg kan give dig point
Avatar billede anadan Nybegynder
05. september 2005 - 15:47 #8
Nul problem :)
Avatar billede anadan Nybegynder
05. september 2005 - 15:49 #9
Alternativt kunne du jo installere VS 2005 Express Edition: http://lab.msdn.microsoft.com/express/vcsharp/default.aspx
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester