OK, ich habe eine Weile gebraucht, um alle Antworten und Links zu lesen. Folgendes habe ich aus ihnen herausgeholt:
Probenergebnisse
Die akzeptierte Antwort deaktiviert visuelle Stile. Sie können die Farbe auf alles einstellen, was Sie möchten, aber das Ergebnis sieht einfach aus:
Mit der folgenden Methode können Sie stattdessen so etwas erhalten:
Wie man
Fügen Sie dies zunächst hinzu, wenn Sie nicht: using System.Runtime.InteropServices;
Zweitens können Sie entweder diese neue Klasse erstellen oder ihren Code in eine vorhandene static
nicht generische Klasse einfügen :
public static class ModifyProgressBarColor
{
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr w, IntPtr l);
public static void SetState(this ProgressBar pBar, int state)
{
SendMessage(pBar.Handle, 1040, (IntPtr)state, IntPtr.Zero);
}
}
Um es zu verwenden, rufen Sie einfach an:
progressBar1.SetState(2);
Beachten Sie den zweiten Parameter in SetState, 1 = normal (grün); 2 = Fehler (rot); 3 = Warnung (gelb).
Ich hoffe es hilft!