Menno!!

MacInternet

Mitglied
Hi,

hab schon wieder ein Problem. Wiederum mit dem Steuerelement ListView (nicht listbox!).

Wenn das geht, die Subitems zuzuweisen:

Visual Basic:
With Listview1 
  With .ListItems.Add(Text:="Mustermann")
    .SubItems(1) = "01.03.1970"
    .SubItems(2) = "13"
  End With
End With

warum zum Kuckuck geht das nicht nicht:

Visual Basic:
Set fso = New FileSystemObject

Set strfile = fso.OpenTextFile("Test.dat", ForReading, False)
     ListView1.ListItems.Clear
     Do While Not strfile.AtEndOfStream
         wort = strfile.ReadLine
         With ListView1.ListItems
            .Add , , wort
            .Add.SubItems(1) = Len(.Add.Text)
            .Add.SubItems(2) = .Count
         End With
     Loop
strfile.Close

Zwar wird das Gewünschte geliefert - aber nicht in den entsprechenden SubItems. Statt dessen wird jedes Mal ein neues Item eingerichtet. Was bitte mache ich denn falsch?

Kann mir bitte hier jemand weiterhelfen? Ich fummle schon seit Stunden daran vergeblich rum...

Danke schön schon mal im voraus,
Mac
 
Ungetestet dürfte der Fehler hier liegen:
Visual Basic:
'In ersten Code inkludierst du in der With-Deklaration bei
With .ListItems.Add(Text:="Mustermann")
'schon das Hinzufügen, die weiteren Codes im With-Block beziehen sich dann auf diese hinzugefügte Objekt

'Im zweiten Code schaut die With-Deklaration so aus:
With ListView1.ListItems
'erst danach kommen einzeln die Adds, daher erzeugt er bei jedem Add
'(auch wenn ein Subitem gemeint war) jeweils ein neues Element


Der Doc!
 
Ja, danke schön für die Antwort!

Also, wenn ich das richtig verstanden habe, dann MUSS ich jedesmal, wenn ich ein Element mit SubItems hinzufügen möchte, diese With ... .Listitems.Add - Verschachtelung wählen...?
Na gut, wenn es denn unbedingt sein muß...

Ich hab da noch eine Frage. Wahrscheinlich sollte ich einen neuen Thread dafür aufmachen, aber ich versuche es mal so, andere möchten ja auch Fragen stellen:

Weißt Du zufällig auch, wie man die Hintergrundfarbe eines einzelnen Elementes ändern kann - ohne, daß sich gleich die ganze Listview damit ändert?
Mit Listview.backcolor kann das ja wohl nicht gehen. Aber wie dann?

Ich möchte die Hintergrundfarbe dann ändern, wenn ein Element eine bestimmte Bedingung erfüllt. Nein, die Text-Farbe dann ändern geht nicht, weil das schon vergeben ist...

Wäre klasse, wenn Du auch darauf eine Antwort wüsstest. Wenn nicht, dann muß ich eben doch noch mal einen neuen Thread aufmachen, denn ich habe diese Fragestellung nirgendwo anders gefunden.

Vielen Dank und viele Grüße,
Mac
 
Zurück