Willkommen bei Entwickler-Forum.
Ergebnis 1 bis 4 von 4
  1. #1
    Stammgast
    Registriert seit
    06.09.2008
    Ort
    Erlenbach/Unterfranken
    Beiträge
    373

    Standard ProgressBar Farbe

    Hallo zusammen!

    Ich würde gerne bei einer ProgressBar die Farbe des Fortschrittbalkens ändern. Geht das mit "ProgressBar.Fore/BackColor" bzw geht es überhaupt? Und wenn wie muss ich die Farbe angeben, mit den 3 RGB Werten?
    Danke für die Hilfe!

    Also ich hab jetzt rausgefunden, dass ich mit Color.ArqticBlue die Farbe festlegen kann, es funktioniert aber weder mit BackColor noch ForeColor von ProgressBar...
    Geändert von brown78 (09.10.2008 um 00:49 Uhr)

  2. #2
    Forenheld
    Registriert seit
    26.02.2003
    Beiträge
    7.024

    Standard

    Hast Du (XP-)Theming aktiviert? Falls ja wird die Farbe durch das Theming vor gegeben!

  3. #3
    Stammgast
    Registriert seit
    11.12.2007
    Ort
    Waidring / Tirol
    Beiträge
    3.785

    Standard

    Hallo,

    2 Möglichkeiten
    1. EnableVisualStyles deaktivieren und mit API-SendMessage die Farben setzen
    2. dir selbst eine ProgressBar zu programmieren


    ad 2) zB http://www.codeproject.com/KB/cpp/VistaProgressBar.aspx

    ad 1)
    Code C:
    using System.Drawing;
    using System.Runtime.InteropServices;
    using System.Windows.Forms;
     
    namespace ProgressBarFarbe
    {
    	public class gfPropressBar : ProgressBar
    	{
    		#region API
    		[DllImport("user32.dll")]
    		private static extern int SendMessage(int hWnd, int wMsg, int wParam, int lParam);
     
    		private const int PBM_SETBKCOLOR = 0x2001;
    		private const int PBM_SETBARCOLOR = 0x409;
    		#endregion
    		//---------------------------------------------------------------------
    		#region Methoden
    		public void SetBackColor(Color color)
    		{
    			int winColor = ColorTranslator.ToWin32(color);
    			int handle = this.Handle.ToInt32();
    			SendMessage(handle, PBM_SETBKCOLOR, 0, winColor);
    		}
    		//---------------------------------------------------------------------
    		public void SetBarColor(Color color)
    		{
    			int winColor = ColorTranslator.ToWin32(color);
    			int handle = this.Handle.ToInt32();
    			SendMessage(handle, PBM_SETBARCOLOR, 0, winColor);
    		}
    		#endregion
    	}
    }

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

  4. #4
    Stammgast
    Registriert seit
    06.09.2008
    Ort
    Erlenbach/Unterfranken
    Beiträge
    373

    Standard

    Ok, danke dafür. Ich hab mich für die Vorlage von Codeproject entschieden... Werd mich mal in den Code vertiefen und für mich anpassen....

 

 

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •