2017-02-15 8 views
0

Ich versuche, meine Fortschrittsbalken entsprechend der aktuellen Anzahl der Werte in einer der SubItems Spalten zu aktualisieren.Update Fortschrittsbalken basierend auf listviewitem-Fokus

Bild für Referenz:

Hier Ich gebe Spieler Joel 4 jump Zahlen. (Alles funktioniert wie erwartet) enter image description here

Allerdings nach dem Erstellen eines anderen Spielers und gibt ihm Sprünge (funktioniert auch). Ich möchte, dass die progressBar entsprechend dem von mir ausgewählten aktualisiert wird.

Wenn ich dann versuche, einen Spieler erneut auszuwählen und ihn wieder zu Sprüngen hinzufügt, merkt die Fortschrittsbalken nicht, dass es auf diesem Spieler ist.

Aktuelle Code:

private void listView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (listView1.SelectedItems.Count != 0) 
     progress(); // function that updates the progressBar 
} 

Wenn keine Zeilen ausgewählt sind, laufen nicht die Funktion.

Progress-Funktion-Schnipsel:

public void progress() 
{ 
    if ((listView1.SelectedItems[0].SubItems[3].Text.Split(',').Length - 1) == 4) 
      progressBar1.Value = 80; 
... 
... 
... 
} 

Ich Berechnung der Höhe der "," Zeichen gibt, und die progressBar Aktualisierung, dass nach.

TL; DR: Aktualisieren progressBar wonach Zeile ausgewählt basierend auf der Menge von ",", dass SubItem enthält. (z. B. 2 = 40%, 3 = 60%)

+0

Wie Sie Spieler tauschen, müssen Sie die Anzahl der Sprünge aufgezeichnet haben und es zu diesem Spieler sicher zurücksetzen? – BugFinder

+0

@BugFinder Der komische Teil ist, dass die Fortschrittsanzeige aktualisiert werden sollte, sobald eine Zeile ausgewählt ist und die Fortschrittsfunktion ausgeführt wird. (listview_selectedIndexChanged) – Joel

+0

Wenn Sie die Listenansicht erneut füllen, klingt es nicht wie der ausgewählte Index - versuchen Sie es – BugFinder

Antwort

0

Aus irgendeinem Grund nach stundenlangem Versuch. Das Problem war, dass zuerst ein Leerzeichen erzeugt wurde, bevor irgendwelche Sprünge hinzugefügt wurden. Sobald ich den Sprungfaden gebildet hatte, funktionierte alles.

Dies war in der Tat die richtige Lösung die ganze Zeit, das Problem belogen anderswo:

private void listView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (listView1.SelectedItems.Count != 0) 
     progress(); 
} 
Verwandte Themen