Progressbar Marquee mit BGW wenn Serial Port sendet

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Progressbar Marquee mit BGW wenn Serial Port sendet

    Hallo zusammen,

    ich habe folgendes Problem. Und zwar soll während ein Text über den SerialPort gesendet wird eine ProgressBar auf Marquee umgestellt werden und wenn fertig gesendet wird wieder auf Blocks. Nun weiß ich zwar, dass ich den BGW verwenden muss und habe dies auch getan, aber die ProgressBar zeigt dennoch nichts an.

    Wie muss ich hier logisch vorgehen?

    Lt.Winters schrieb:

    aber die ProgressBar zeigt dennoch nichts an.
    Wie koppelst Du die Progressbar an den BGW?
    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!
    Ich hab einfach dem BGW gesagt DoWorAsync und dort dann den PG.Style auf Marquee gesetzt.

    VB.NET-Quellcode

    1. Private Sub BackgroundWorker1_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
    2. Form1.ProgressBar1.Style = ProgressBarStyle.Marquee
    3. End Sub
    @Lt.Winters Schmeiß weg den. Schade. Mach es anders herum.
    1. BackgroundWorker1.WorkerReportsProgress = True
    2. VB.NET-Quellcode

      1. Private Sub BackgroundWorker1_ProgressChanged(sender As System.Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
      2. Me.ProgressBar1.Value = e.ProgressPercentage
      3. End Sub
      4. Private Sub BackgroundWorker1_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
      5. BackgroundWorker1.ReportProgress(17) ' Deinen Wert (0 bis 100)
      6. End Sub

    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!

    Lt.Winters schrieb:

    Das klappt leider nicht.
    Was ganz genau?
    Probier dies:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    3. BackgroundWorker1.RunWorkerAsync()
    4. End Sub
    5. Private Sub BackgroundWorker1_ProgressChanged(sender As System.Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
    6. Me.ProgressBar1.Value = e.ProgressPercentage
    7. End Sub
    8. Private Sub BackgroundWorker1_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
    9. For i = 1 To 100
    10. BackgroundWorker1.ReportProgress(i)
    11. System.Threading.Thread.Sleep(30)
    12. Next
    13. End Sub
    14. End Class
    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!
    @Lt.Winters ZU Deinem ursprünglichen Problem:
    Das Umstellen der Progressbar hat doch nix mit dem BGW zu tun.
    Bevor Du beginnst zu senden, stellst Du sie um, wenn Du fertig bist, wieder zurück.
    Was soll denn Dein BGW ühaupt 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!