Laden...

GroupBox Rahmenfarbe

Erstellt von northdrive vor 17 Jahren Letzter Beitrag vor 12 Jahren 11.253 Views
N
northdrive Themenstarter:in
43 Beiträge seit 2006
vor 17 Jahren
GroupBox Rahmenfarbe

Hallo,

Die BS hat mir leider keine Lösungen offenbart.

Ich habe eine GroupBox, die auf einem schönen blauen Panel liegt. der Rahmen der GroupBox wird jedoch in einem ganz leichtem hellgrau angezeigt. Der Rahmen soll jedoch in schwarz angezeigt werden X(

Auf welche Eigenschaft muss ich dafür gehen 🤔

vielen Dank northdrive

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo northdrive,

ForeColor?

herbivore

N
northdrive Themenstarter:in
43 Beiträge seit 2006
vor 17 Jahren

Hallo Herbivore,

nein ForeColor ist es nicht, damit wird die Farbe der Texte von den, in der GroupBox liegenden Labels geändert, aber nicht der Rahmen 🤔

northdrive

N
northdrive Themenstarter:in
43 Beiträge seit 2006
vor 17 Jahren

Mmh

das ganze geht leider nicht ohne das OnPaint() zu überschreiben. 🙁 Aber wir haben dankbarerweise eine externe Komponente im Haus, die die passende Eigenschaft besitzt. =)

northdrive

2.921 Beiträge seit 2005
vor 17 Jahren

Wie wärs damit (auch wenn der Thread schon alt ist):

(in der GroupBox🙂


   protected override void OnPaint(PaintEventArgs e)
        {
                base.OnPaint(e);
                //FIXME: use TextMetrics to calculate coordinates in the method
                Rectangle bounds = DisplayRectangle;

                Bitmap bmp = new Bitmap(bounds.Width, bounds.Height, e.Graphics);
                Graphics paintOn = Graphics.FromImage(bmp);

                Brush br = new SolidBrush(BackColor);
                paintOn.FillRectangle(br, bounds);

                bounds.Y += 5;
                bounds.Height -= 5;

                /*
                                bounds.Inflate(-4,-4);
                                bounds.Y += 2;
                */
                Color dark = ControlPaint.DarkDark(BackColor);
                Color light = ControlPaint.LightLight(BackColor);

                ControlPaint.DrawBorder(paintOn, bounds, dark, 1, ButtonBorderStyle.Solid,
                    dark, 1, ButtonBorderStyle.Solid, light, 1, ButtonBorderStyle.Solid,
                    light, 1, ButtonBorderStyle.Solid);
                bounds.Inflate(-1, -1);
                ControlPaint.DrawBorder(paintOn, bounds, light, 1, ButtonBorderStyle.Solid,
                    light, 1, ButtonBorderStyle.Solid, dark, 1, ButtonBorderStyle.Solid,
                    dark, 1, ButtonBorderStyle.Solid);
        }

Wäre doch zumindest ein Anfang, oder?

Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo dr4g0n76,

auch wenn der Thread schon alt ist

ok, erstellt heute um 11:12, letzte Antwort vor deiner heute um 14:09 und deine Antwort heute um 15:10 ... das ist - so schnell wie wir hier oft antworten - natürlich wirklich schon steinalt. 🙂

herbivore

79 Beiträge seit 2007
vor 12 Jahren

Auf einer anderen Website hatte ich Code gefunden, verbessert und dort veröffentlicht.

Der Rahmen hat dann auch abgerundete Ecken und einen zweiten Dekorationsrahmen.

Das Control ist auch flimmerfrei und ohne Pixelfehler (beim Verschieben/Größenänderung vom Fenster)
... Die Verbesserung konnte ich durch herbivores tolle Tutorials machen. Danke!!

Mein Code inklusive Anleitung zur einfachen Verwendung steht hier:
Changing border color of GroupBox

Leider gibt es auf der Seite keinen Direkt-Link zu meinem Beitrag.
Daher runterscrollen bis Improved version erscheint (fett/groß geschrieben)

Vielleicht kann es ja mal einer gebrauchen. 🙂