ProgressBar

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von toto.

    Hallo Comunity.

    habe Probleme einen ProgressBar der zur Laufzeit erstellt worden ist anzusprechen.
    Hier mein Szenario:
    Spoiler anzeigen

    [vb] Dim pgb As New ProgressBar
    pgb.Tag = FLP.Controls.Count
    pgb.Dock = DockStyle.Bottom
    pgb.Name = pgb.Tag.ToString
    pgb.Size = New Size(70, 20)
    pgb.BackColor = Color.DarkBlue
    pgb.ForeColor = Color.Red
    pgb.Style = ProgressBarStyle.Continuous
    pnl.Controls.Add(pgb)
    FLP.Controls.Add(pnl)



    pgb.Minimum = 0
    pgb.Maximun = 100
    pgb.Value = 25


    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    Dim pgb As New ProgressBar
    If Timer1.Enabled Then
    pgb.Value = 0
    End If
    pgb.Value = pgb.Value + 25
    If pgb.Value = pgb.Maximum Then
    Timer2.Interval = 1000
    Timer2.Start()
    Timer1.Stop()
    End If
    Call PlaySequence()
    'Call Play1()
    End Sub

    [vb]


    Es ist einfach nichts zu sehen.

    Und jetzt auf die Frage: warum zur Laufzeit.

    In ein FLP sind Panele, jeder Panel hat ein pgb, es wird eine Sequenz abgespielt und der pgb soll mitlaufen.
    Bin für jede Hilfe dankbar.

    LG
    toto
    lg toto
    Du erstellst die Progressbar lokal, du musst sie aber global deklarieren.

    VB.NET-Quellcode

    1. Private prgb As New ProgressBar
    2. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    3. With prgb
    4. .Value = 0
    5. 'deine Eigenschaften
    6. End With
    7. Me.Controls.Add(prgb)
    8. End Sub


    Aber überlass die Arbeit doch dem Designer ;)

    Hallo TheVB....
    Danke für deine rasche Antwort.
    habe auch schon probiert, leider in pgb bewegt sich immer noch nichts.
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private pgb As New ProgressBar
    2. With pgb
    3. pgb.Tag = FLP.Controls.Count
    4. pgb.Dock = DockStyle.Bottom
    5. pgb.Name = pgb.Tag.ToString
    6. pgb.Size = New Size(70, 20)
    7. pgb.BackColor = Color.DarkBlue
    8. pgb.ForeColor = Color.Red
    9. pgb.Style = ProgressBarStyle.Continuous
    10. pgb.Minimum = 0
    11. pgb.Minimum = 100
    12. End With
    13. in Timer.Tick
    14. If Timer1.Enabled Then
    15. pgb.Value = 0
    16. End If
    17. pgb.Value = pgb.Value + 25


    Ich verstehe das Ganze nicht, wenn ich ein PGB aus der Toolbox einfüge dann funzt.
    lg toto
    Du musst noch die Progressbar hinzufügen mit Controls.Add(prgb)
    Wenn du in der Timer-Sub eine Abfrage machst, muss der Timer ja enabled sein. Wenn du dann immer abfragst "If Timer1.Enabled..." ist er ja immer an, das heißt du musst das rausmachen, da die Progressbar immer auf 0 gesetzt wird.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private pgb As New ProgressBar
    3. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    4. If pgb.Value = 100 Then
    5. pgb.Value = 0
    6. End If
    7. pgb.Value += 10
    8. End Sub
    9. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
    10. With pgb
    11. pgb.Dock = DockStyle.Bottom
    12. pgb.Size = New Size(70, 20)
    13. pgb.BackColor = Color.DarkBlue
    14. pgb.ForeColor = Color.Red
    15. pgb.Style = ProgressBarStyle.Continuous
    16. pgb.Minimum = 0
    17. pgb.Maximum = 100
    18. pgb.Location = New Point(10, 10)
    19. End With
    20. Controls.Add(pgb)
    21. End Sub
    22. End Class

    Spoiler anzeigen

    VB.NET-Quellcode

    1. With pgb
    2. pgb.Tag = FLP.Controls.Count
    3. pgb.Dock = DockStyle.Bottom
    4. pgb.Name = pgb.Tag.ToString
    5. pgb.Size = New Size(70, 20)
    6. pgb.BackColor = Color.DarkBlue
    7. pgb.ForeColor = Color.Red
    8. pgb.Style = ProgressBarStyle.Continuous
    9. pgb.Minimum = 0
    10. pgb.Minimum = 100
    11. End With
    12. pnl.Controls.Add(pgb)
    13. FLP.Controls.Add(pnl)
    14. die Controls sind added.
    15. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    16. pgb.Value = 25
    17. 'If pgb.Value = pgb.Maximum Then
    18. ' Timer2.Interval = 1000
    19. ' Timer2.Start()
    20. ' Timer1.Stop()
    21. 'End If
    22. Call PlaySequence()


    Was mache ich falsch??
    lg toto
    Hast Du Deinen Timer überhaupt aktiviert?

    EDIT: Ferner setzt Du 2x die Minimum-Property. Was soll der Tag überhaupt für nen Sinn haben? Warum stellst Du die Properties nicht im Designer? Du fügst die ProgressBar 2x einem Container zu. Ein Control kann nur einen Parent haben.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

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

    Ich glaub du hast den Sinn von With nicht ganz verstanden:

    VB.NET-Quellcode

    1. With pgb
    2. pgb.Tag = FLP.Controls.Count
    3. pgb.Dock = DockStyle.Bottom
    4. pgb.Name = pgb.Tag.ToString
    5. pgb.Size = New Size(70, 20)
    6. pgb.BackColor = Color.DarkBlue
    7. pgb.ForeColor = Color.Red
    8. pgb.Style = ProgressBarStyle.Continuous
    9. pgb.Minimum = 0
    10. pgb.Minimum = 100
    11. End With

    VB.NET-Quellcode

    1. Private pnl As New Panel


    VB.NET-Quellcode

    1. pnl.Size = New Size(70, 95)
    2. pnl.Margin = New Padding(3)


    FLP ist ein FlowLayoutPanel

    @Rushden

    VB.NET-Quellcode

    1. With pgb
    2. 'pgb.Tag = FLP.Controls.Count
    3. .Dock = DockStyle.Bottom
    4. 'pgb.Name = pgb.Tag.ToString
    5. .Size = New Size(70, 20)
    6. .BackColor = Color.DarkBlue
    7. .ForeColor = Color.Red
    8. .Style = ProgressBarStyle.Continuous
    9. .Minimum = 0
    10. .Minimum = 100
    11. End With


    VB.NET-Quellcode

    1. Private Sub btnPlay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPlay.Click
    2. Timer1.Enabled = True
    3. Timer1.Start()
    4. Timer1.Interval = 1000
    5. End Sub


    VB.NET-Quellcode

    1. m.PlayMIDINote(ListView4.SelectedItems(0).SubItems(1).Text, 127, 1) 'Play MIDI Sounds
    2. m.PlayMIDINote(ListView4.SelectedItems(0).SubItems(2).Text, 127, 1) 'Play MIDI Sounds
    3. m.PlayMIDINote(ListView4.SelectedItems(0).SubItems(3).Text, 127, 1) 'Play MIDI Sounds
    4. m.PlayMIDINote(ListView4.SelectedItems(0).SubItems(4).Text, 127, 1) 'Play MIDI Sounds
    5. m.PlayMIDINote(ListView4.SelectedItems(0).SubItems(5).Text, 127, 1) 'Play MIDI Sounds
    6. m.PlayMIDINote(ListView4.SelectedItems(0).SubItems(6).Text, 127, 1) 'Play MIDI Sounds


    So ich hoffe alle beantwortet zu haben.
    LG


    Ferner setzt Du 2x die Minimum-Property


    Danke SpaceyX das war der Fehler.

    Danke auch an alle anderen.

    Warum stellst Du die Properties nicht im Designer?

    Weil die PGB zur Laufzeit eingefügt werden.

    Du fügst die ProgressBar 2x einem Container zu. Ein Control kann nur einen Parent haben.


    Pro Panel ein PGB.

    Eine Frage hätte ich noch: wie kann ich zum nächsten PGB(Panel) springen?

    LG
    lg toto

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

    Moin Toto,
    kannst Du bitte mal einen Screenshot posten?
    Das ganze scheint mir etwas suboptimal.
    Was ist der Plan?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hast Du denn keine Exception bekommen? Sollte eigentlich der Fall sein, wenn Du eine Value > Minimum zuweisen möchtest. Was meinst Du konkret mit: "Zum nächsten Panel springen?"
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

    toto schrieb:

    Wie füge ich ein Bild ein?
    Gugst Du hier.
    Kein Link, das Forum kann das besser. :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Warte bitte ich versuche ein Bild hoch zu laden

    SpaceyX schau dir das Bild an.

    Normalerweise sollte unter jeder Akkord ein PGB sein.
    Jeder Akkord soll 4x gespielt werden dann der nächste. Das ist mein Vorhaben. Ein programm zum begleiten.
    Bilder
    • Bild.JPG

      110,99 kB, 1.682×1.472, 101 mal angesehen
    • Bild.JPG

      81 kB, 878×667, 107 mal angesehen
    lg toto

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

    RodFromGermany schrieb:

    Was ist der Plan?
    @toto:: Was sollen diese Controls in Deinem Programm tun?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Also ich füge auf ein Panel ein btn und ein pgb usw.
    Die btn's werden mit Akkorden versehen.

    Wenn ich auf Play drucke sollte ein Akkord 4x gespielt werden dann der nächste usw.

    Es lfunz sher gut bis auf die PGB und das 4x spielen pro akkord.
    lg toto
    Wieso musst Du die Controls zur Laufzeit erstellen?
    Mach das im Designer und mach sie Visible = False, und wenn Du sie brauchst, wieder Visible = True. Das dürfte etwas weniger Stress sein.
    Oder Du machst Dir alle fertig in ein TabControl, da kannst Du ganze Tabs unsichtbar machen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    toto schrieb:

    TabControl
    Falls Deine Funktionalität es zulässt:
    Gruppiere Deine GUI ggf. so, dass immer nur ein Teil davon sichtbar ist, der Rest ist auf andere Tabs verteilt.
    Da kannst Du erst mal Ordnung reinkriegen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    mir fällt auch in deinem Code auf du gibst zweimal den minimum wert an.

    VB.NET-Quellcode

    1. With pgb
    2. 'pgb.Tag = FLP.Controls.Count
    3. .Dock = DockStyle.Bottom
    4. 'pgb.Name = pgb.Tag.ToString
    5. .Size = New Size(70, 20)
    6. .BackColor = Color.DarkBlue
    7. .ForeColor = Color.Red
    8. .Style = ProgressBarStyle.Continuous
    9. .Minimum = 0 '<<<<
    10. .Minimum = 100 '<<<<
    11. End With
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.