Wert einer Laufvariablen bei Collections ? ? ?

timfisch

Grünschnabel
Hallo Leute,

vielleicht kann mir einer bei meinem folgenden Problem helfen, wäre echt klasse:

Ich habe ein Programm,
in dem ich in eine listviewbox "aufgaben" bzw items hineinschreibe.
Auf meinem userinterface soll dann letztendlich die anzahl der in der listbox stehenden aufgaben angezeigt werden, ueber eine textbox zum beispiel...

Dafür gibt es eine laufvariable i, die mir die einträge in der collection zählt, wie im folgenden code zu sehn:

'Index neues Item (der Aufgabe)
Dim i As Integer = Me.ListView1.Items.Count

'Neues Item anlegen
Me.ListView1.Items.Add(Name)

'Subitems hinzufügen
Me.ListView1.Items.Item(i).SubItems.Add(DatumErfassung)
Me.ListView1.Items.Item(i).SubItems.Add(DatumFertigstellung)
Me.ListView1.Items.Item(i).SubItems.Add(Priorität)
Me.ListView1.Items.Item(i).SubItems.Add(Status)
Me.ListView1.Items.Item(i).SubItems.Add(Kategorie)
Me.ListView1.Items.Item(i).SubItems.Add(Beschreibung)
Me.ListView1.Items.Item(i).SubItems.Add(Kontakt)
Return 0
End Function

Nun zu meinem Problem:

Das problem ist für mich eig die laufvariable, denn sie beginnt bei 0 zu zählen, denke ich zumindest.
Steht ein eintrag in meiner listbox, dann hat sie den wert 0, bei 2 eintraegen den wert 1 usw...
Nur das dumme ist, das sie scheinbar auch den wert 0 hat, wenn kein eintrag in der lsitbox steht.....und genau das ist mein problem.
will ich nämlich meine einträge in der textbox auf meinem userinterface zäheln bzw anzeigen lassen, zb mit dem code:

txtbox.text = cint( i + 1)

dann steht bei einem eintrag sowie bei keinem eintrag der wert 1 in der textbox

kann mir einer helfen, wie ich dieses problem geschickt umgehen kann?

Danke schonmal im vorraus!

P.S.
meine version ist die free ware von VB 2005 , die man umsonst bei microsoft runterladen kann
 
Zuletzt bearbeitet:

Nico Graichen

Erfahrenes Mitglied
Hi und willkommen im Forum

Wenn ich das richtig verstanden hab, willst du eigentlich nur die SubItems zu deinem neuen ListViewItem hinzufügen, oder?
Dafür brauchst du nicht mit Indizes rumhandieren:
Entweder, du instanzierst selbst eine neue Variable vom TypListViewItem und fügst dieser der ListViewItemsCollection hinzu oder du nutzt die ListViewItem-Instanz, die dir die Methode Add zurück gibt. In beiden fällen kannst du direkt auf diesem Objekt weiterarbeiten und musst nicht mit den Indizes spielen.

PS: Bitte halte dich an die Netiquette. Insbesondere Punkt 15
PPS: Bitte setz Quellcode in die entsprechenden Code-Tags, das macht die Angelegenheit lesbarer. Danke
PPPS: Visual Basic.NET Express, C# Express, ... sind keine Freeware Versionen von VS 2005 sondern eigenständige Anwendungen
 

Norbert Eder

Erfahrenes Mitglied
Du musst zwischen dem Index und dem Count unterscheiden. Der Index hat 0 als Basis. Count gibt dir die tatsächliche Anzahl an Elemente zurück.

Beispiel:
5 Elemente. Das letzte Element hat den Index 4, die Eigenschaft Count liefert allerdings als Ergebnis 5.
 

Neue Beiträge