2 Durchläufe in 1 ProgressBar

  • VB.NET

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

    2 Durchläufe in 1 ProgressBar

    Hallo

    Ich habe sowas vor wie hier auf dem Bild:



    Also es soll eine ProgressBar sein in der 2 Statusse ( was ist die mehrzahl von Status? XD ) gleichzeitig angezeigt werden. Der kleine Unterschied ist das bei mir die Vorgänge nacheinander passieren. Es soll der erste Status z.B in grün durchlaufen und wenn dieser 100 erreicht hat soll ein zweiter z.B in blau drüberlaufen.

    Und dann mal generell gefragt: Wie kann man überhaupt 2 Leisten in einer Bar unterbringen die dann auch noch unterschiedliche Vorgänge darstellen? Auf dem Bild ist eine, wie ja schon zu erahnen ist ;) zum Download der Dateien und der zweite installiert gleichzeitig schon.

    Geht das so wie ich mir das vorstellt? Fängt ja schon damit an die Farbe in der ProgressBar zu ändern... und dann halt noch 2 in einer Bar unterzubringen denke ich ist nicht so leicht oder?

    Hoffe auf eure Hilfe. Viele Grüße
    Croasider
    Da hilft's wohl nur, eine eigene Progressbar zu machen, mit der normalen Progressbar ist das nicht zu bewerkstelligen, außer das mit den Farben. Ab Vista kann man die Progressbar auch Rot färben, musst mal hier im Forum suchen, das Thema mit der Farbe hatten wir schonmal.

    MfG 4typen
    Naja so schwer ist das nicht.
    Du erstellst dir ein eigenes Control und erbst die Eigenschaften von einer Progressbar und fügst eine 2. BackColor eigenschaft hinzu.

    2. Möglichkeit:
    Mit GDI einfach mit nem schwachen Alpha-Kanal davor/hinter zeichnen.
    Man kann es sich aber auch leicht machen und mit Panels arbeiten..


    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim zahl As Integer = 1 'Prozente der Progressbar
    3. Private Sub Timer1_Tick_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    4. zahl += 1 'Prozente + 1
    5. Panel2.Width = 244 / 100 * zahl 'Länge des Panels errechnen
    6. If Panel2.Size = Panel2.MaximumSize Then
    7. Timer2.Start()
    8. Panel3.Show()
    9. End If
    10. End Sub
    11. Dim z As Integer = 1
    12. Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
    13. z += 1 'Prozente + 1
    14. Panel3.Width = 244 / 100 * z 'Länge des Panels errechnen
    15. End Sub
    16. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    17. Timer1.Start()
    18. End Sub
    19. End Class

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

    Natürlich geht es mit GDI+ nur wollte ich es am schnellsten machen ^^

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim zahl As Integer = 1
    3. Dim fertig As Boolean = False
    4. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    5. Dim g As Graphics = Panel1.CreateGraphics
    6. If zahl = 100 Then
    7. zahl = 1
    8. fertig = True
    9. Else
    10. zahl += 1
    11. End If
    12. If fertig = True Then
    13. Dim widths As Integer = 235 / 100 * zahl
    14. g.FillRectangle(Brushes.Yellow, 0, 0, widths, Panel1.Height)
    15. Else
    16. Dim widths As Integer = 235 / 100 * zahl
    17. g.FillRectangle(Brushes.LightSeaGreen, 0, 0, widths, Panel1.Height)
    18. End If
    19. Me.Invalidate()
    20. End Sub
    21. End Class


    Mfg Scream

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

    Geht auch enfacher im Timer:

    2 Progressbars einfügen und dann:

    VB.NET-Quellcode

    1. Progressbar1.increment(5)
    2. if progressbar1.value = 100 Then
    3. progressbar1.hide
    4. progressbar2.increment(5)
    5. progressbar2.show
    6. if progressbar2.value = 100 Then
    7. 'Code einfügen
    8. End if
    9. End if
    2 Progressbars einfügen und dann:
    Du hast die Frage nicht kapiert, und stürmst drauf los, er will 2 Progressbars nebeneinander laufen lassen bzw. übereinander damit die eine halbtransparent ist!, dies kann man nur mit GDI+ machen.
    wenn du ein UserControl machst, dann erbt dieses von "UserControl" und somit auch von "Control", es ist jedoch kein ContainerControl, was bei einer ProgressBar sicherlich nicht erwünscht ist^^

    Also erben tut man in jedem Fall ;)
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---