Prozent in Progressbar schreiben



  • Hallo,

    ich möchte in meiner ProgessBar (Windows Forms) eine Prozentzahl mit einblenden und habe folgendes gefunden:
    http://www.dreamincode.net/forums/topic/62979-add-the-percent-into-a-progress-bar/

    Das funktioniert auch nur flackert die Schrift wenn die Animation des Balkens durchläuft.
    Ich habe folgenden code:

    pbSOC.Refresh();   
    int percent = (int)(((double)pbSOC.Value / (double)pbSOC.Maximum) * 100);
    pbSOC.CreateGraphics().DrawString(percent.ToString() + "%", new Font("Arial", (float)8.25, FontStyle.Regular), Brushes.Black, new PointF(pbSOC.Width / 2 - 10, pbSOC.Height / 2 - 7));
    

    Kann mir jemand sagen wie ich das Flackern unterbinden kann? Es würde mir auch ausreichen die Animation abzuschalten. Leider bekomme ich beides nicht hin...

    Grüße,
    MeinAccount



  • Zeichnen sollte man eigentlich nur im Paint-Ereignis. Da aber ProgressBar.Paint nicht direkt unterstützt wird, sollte man ein eigenes Control davon ableiten und OnPaint überschreiben, s. z.B. Custom Progress Bar Class (beachte auch den SetStyle-Aufruf im Konstruktor!)

    Um das Neuzeichnen des Custom Controls (von der Form aus) zu veranlassen, dann einfach Invalidate() (oder so wie du es bisher gemacht hast - Refresh()) aufrufen.


Anmelden zum Antworten