Hintergrundfarbe bei ProgressBar



  • Wie kann ich bei einer ProgressBar die Hintergrundfarbe ändern und diese gestrichelte Linie als durchgehende Linie darstellen?



  • Hi, da is mal wieder die API gefragt.
    Ich gebe dir gleich den Quellcode.

    A. Zur Bar-Farbe

    private void SetProgressBarColor( System.Drawing.Color color, ProgressBar progressBar )
    {
    	if ( progressBar == null ) return; 
    
    	SendMessage( progressBar.Handle, PBM_SETBARCOLOR, IntPtr.Zero, ( color.B << 16 | color.G << 8 | color.R ) );
    }
    

    B. Zur SmoothBar

    1. In der Main-Methode die Methode "Application.EnableVisualStyles();" aufrufen und zwar vordem Start des Forms.

    private void SetSmoothProgressBar( ProgressBar progressBar )
    {
    	if ( progressBar == null ) return; 
    
    	int returnvalue = GetWindowLong( progressBar.Handle, GWL_STYLE );
    
    	if ( returnvalue == 0 ) 
    	{
    		// GetLastError
    		return;
    	}
    
    	returnvalue |= 0x01; // PBS_SMOOTH
    
    	SetWindowLong( progressBar.Handle, GWL_STYLE, returnvalue );
    }
    

    Und zum Schluß noch die Interop und API sachen.

    1. using System.Runtime.InteropServices;

    private const int WM_USER	 = 0x400;
    private const int PBM_SETBARCOLOR   =   (WM_USER+9);
    
    [DllImport("User32.dll",CharSet = CharSet.Auto, SetLastError = true)]
    private static extern int SetWindowLong(IntPtr hwnd, int index, int style);
    
    [DllImport("User32.dll",CharSet = CharSet.Auto, SetLastError = true)]
    private static extern int GetWindowLong(IntPtr hwnd, int index);
    
    [DllImport("user32.dll", CharSet=CharSet.Auto)]
    public static extern void SendMessage(IntPtr hWnd, int msg, IntPtr wParam , int lParam );
    

    So, vielleicht konnte ich dir helfen



  • Erstmal Danke für die Antwort. Hier steht allerdings etwas von einer ProgressBar.BackColor Property, nur leider weiß ich nix damit anzufangen. Hat das vielleicht schonmal jemand verwendet?



  • BackColor ist ein Property von Control und ändert immer die Hintergrundfarbe des Controls. Ich dachte immer diese Property ist geplockt, d.h. die macht nix.

    Übrigens, wir haben eh die ganze System.Windows.Forms Library fast komplett neu geschrieben, bzw. stark überarbeitet, weil bei den meisten (allen) Controls immer irgendwas fehlt.



  • Scania V8 schrieb:

    Übrigens, wir haben eh die ganze System.Windows.Forms Library fast komplett neu geschrieben, bzw. stark überarbeitet, weil bei den meisten (allen) Controls immer irgendwas fehlt.

    Kannst du bitte verraten, wer sind wir? Ich sehe mich nach Firmen um, die mit C# programmieren und habe noch nicht besonders viele gefunden.



  • Xqgene: wir machen jetzt C# 😉



  • AndreasW schrieb:

    Xqgene: wir machen jetzt C# 😉

    Die "Firma" ist die erste in meiner Liste. 🙂



  • jo, würd mich freuen 🙂 Wir könne Verstärkung immer gut gebrauchen.



  • AndreasW schrieb:

    ..Wir könne Verstärkung immer gut gebrauchen.

    irgendwie ist meine letzte antwohrt verschwunden. schreib mir eine e-mail, wenn das ernst gemeint ist.



  • ich hab dir gestern ne Mail geschrieben 🙂


Anmelden zum Antworten