Avatar billede deamill Nybegynder
04. juni 2007 - 18:47 Der er 8 kommentarer og
1 løsning

Farver i min listview gør mærkeligt

Hej,

Jeg har lidt problemer med en ListView efter jeg har opgraderet til VS.NET 2005 (VB8)

Jeg har en listview som læser en logfil, alt efter hvad den læser (fejl/info etc.) farver den teksten i linien i listviewen.

Det gør den sådan her:
If tmpEventType = "Error" Then
  ListView1.Items.Add(tmpTime)
  ListView1.Items(counter).SubItems.Add(tmpEventType)
  ListView1.Items(counter).SubItems.Add(tmpText)
  ListView1.Items(counter).SubItems.Add(tmpSource)
  ListView1.Items(counter).SubItems.Add(tmpShortText)
  ListView1.Items(ListView1.Items.Count() - 1).ForeColor = System.Drawing.Color.LightCoral
  counter = counter + 1
End If

Det virker fint I VS.NET 2003 men i 2005 sker følgende:
Hvis jeg har ListViewen på skærmen med de farvede linier, så scroller jeg f.eks. lidt op i ListViewen, de linier der nu kommer frem (som var skjult af ListViewens top er nu bare sorte.

Hvis jeg så minimerer og så maximerer vinduet igen, så har de den rigtige farve.

Er der nogen som kan hjælpe mig med at løse problemet?

Jeg har en billede serie til at forklare hvad jeg mener, så sig til hvis det ikke giver mening!

På forhånd tak!

Kenneth
Avatar billede midcom Nybegynder
05. juni 2007 - 20:46 #1
Nå jeg tilføjre items til listview. Gør jeg således.

Do while
  Dim MyLstItem as new listviewitem
  MyLstItem.text = "Første kolonne"
  MyLstItem.subitems.add("Næste kolonne")
  MyLstItem.subitems.add("Næste kolonne")
  MyLstItem.subitems.add("Næste kolonne")
  MyLstItem.BackColor = Color.LightCoral

  ListView.Items.add(MyLstItem)
  MyLstItem = Nothing
Loop
Avatar billede midcom Nybegynder
05. juni 2007 - 20:50 #2
Og i dit eksemple således

If tmpEventType = "Error" Then
  Dim MyLstItem as new listviewitem
  MyLstItem.text = tmpTime
  MyLstItem.subitems.add(tmpEventType)
  MyLstItem.subitems.add(tmpText)
  MyLstItem.subitems.add(tmpSource)
  MyLstItem.subitems.add(tmpShortText)
  MyLstItem.ForeColor = Color.LightCoral
  ListView.Items.add(MyLstItem)
  MyLstItem = Nothing
End if
Avatar billede deamill Nybegynder
05. juni 2007 - 23:05 #3
ja, det har jeg så lige prøvet og sådan kan man jo også gøre det :)

Men det ændrer ikke på, at farven først bliver farvet på listviewen efter jeg minimerer og så maximerer vinduet igen?!

Kan man force en screen painter lige som i java?
Avatar billede midcom Nybegynder
05. juni 2007 - 23:15 #4
Er det me.refresh og application.DoEvents du mener
Avatar billede midcom Nybegynder
06. juni 2007 - 00:51 #5
Men det jeg gør er at gøre listview visible til false.
Nå jeg fylder data i . Og derefter vise det igen. = true
Avatar billede deamill Nybegynder
06. juni 2007 - 08:18 #6
cool, det prøver jeg lige når jeg kommer hjem :)
Avatar billede midcom Nybegynder
13. juni 2007 - 08:51 #7
hvadså
Avatar billede deamill Nybegynder
13. juni 2007 - 11:44 #8
Hey, undskyld ventetiden, men min computer døede den anden dag, men nu kører jeg igen..

Ja, jeg prøvede at hide den inden, og det virker nu, så du må gerne svare :)
Avatar billede midcom Nybegynder
13. juni 2007 - 12:05 #9
Det var da godt.
Her er et svar
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
Kurser inden for grundlæggende programmering

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