Schleifen Ablauf errechnen?

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Lawliet.

    Schleifen Ablauf errechnen?

    Guten Morgen Leute,

    Ich habe eine Frage die vermutlich zu den Grundlagen gehört, oder ich einfach nicht genau weiß wie man sowas bewerkstelligen könnte,
    und zwar habe ich eine schleife, diese sieht so aus:

    VB.NET-Quellcode

    1. For Each item As ListViewItem In Listview1.Items
    2. 'MsgBox(item.Text.ToString)
    3. ProgressBar1.Value = +1 ' kompletter Blödsinn und um diese Zeile geht es auch
    4. pagecount = +1 ' Diese gehört ebenfalls dazu
    5. Label2.Text = ("Seite " & pagecount & " von 20")
    6. Next


    Also wie man sieht möchte das Listview Control Zeile für Zeile abgehen, das klappt wunderbar.
    jetzt ist das Listview Control immer unterschiedlich voll, und zwar sammeln sich dort Daten einer MySql Datenbank an.
    Irgendwie fehlt mir die Cleverness zu errechnen wie ich die Progress bar drauf abstimmen könnte.

    Kann mir da jemand unter die Arme greifen, oder zumindest einen groben Tipp geben?
    Thx LG.L
    Ohwei, auf solche dinge komme ich nicht :D
    Danke mikeb69,

    Ich habe noch ein kleines Problem, und zwar ist es ja eine schleife, da rechne ich 100 / Listview.items.count
    es sieht nur so aus als würde er nur einen Eintrag abgehen und zwar lande ich bei 3 Einträgen immer noch auf 33,33 %
    wenn ich es dann * 3 nehmen würde hätte es ja keinen Sinn mehr, es soll ja als Schleife dienen.

    Danke!

    //Edit
    ich blödman hab was vergessen

    VB.NET-Quellcode

    1. += 100 / Listview1.Items.Count

    Allerdings springt er 2 über die 100 ter Value.
    Wenn ich

    VB.NET-Quellcode

    1. += 100 / Listview1.Items.Count -1

    dranhänge hat es auch keinen Sinn. (wie man merkt mochte ich sowas noch nie ^^)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Lawliet“ ()

    Darum nutze statt ProgressBar1.Value = + Wert lieber ProgressBar1.Increment(Wert). Damit wird ein Überlauf der Progressbar sicher verhindert.
    Plan B: Progressbar.Max = Listview1.Items.Count und ProgressBar1.Increment(1)
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    Hallo Vatter, Plan A geht, jedoch alles nicht so schön... auch am ende schließt sich die Anwendung von selber ohne Fehlermeldung
    Plan B funktioniert bei mir erst gar nicht.
    Da erzählt er mir das der Wert 18 schon zu hoch sei...

    Plan B:

    VB.NET-Quellcode

    1. PsBar1.Maximum = Listview1.Items.Count
    2. For Each item As ListViewItem In Listview1.Items
    3. PsBar1.Increment(1)
    4. MsgBox(item.Text.ToString)
    5. PsBar1.Value += 100 / Listview1.Items.Count
    6. Label2.Text = ("Seite " & pagecount & " von 20")
    7. Next


    Oh! Sry :) hab mich vertan, es klappt doch.. ich hab nur irgendwas von meinen vorherigen Tests mit deinem Tipp vermischt
    vielen Dank vatter! und dir natürlich auch mike.
    jetzt läuft die Progressbar wie sie soll.

    LG.L

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Lawliet“ ()