bevelled Form

im Paint Ereignis selbst zeichen.
Ganz vereinfacht einfach 2 Rechtecke zeichnen, das äußere dunkler (z.B.: Schwarz) und das innere heller (Grau).

Oder du packst auf deiner Form ein Panel (oder was anderes) mit DockStyle Fill, setzt dort den BorderStyle und schaust ob es für dich passt.
 
habe dise Möglichkeit mit dem Panel rumprobiert. Aber mir passt es nicht.

Könntest du vielleicht den Code im Paint Ereignis zeigen?
 
C#:
protected override void OnPaint(PaintEventArgs e)
{
     base.OnPaint(e);

     using(Pen pb = new Pen(Color.DarkGray),
                         pg = new Pen(Color.Gray))
     {
           //oben und links, einfache Line, 
          e.Graphics.DrawLine(pg, 0, 0, this.Width, 0); //obere linie (heller)
          e.Graphics.DrawLine(pg, 0, 0, 0, this.Height); //linke linie (heller)

          //unten und rechts, 2 linien für 3D Effekt

          e.Graphics.DrawLine(pg, 0, this.Height-2, this.Width, this.Height-2); //unten (heller)
          e.Graphics.DrawLine(pb, 0, this.Height-1, this.Width, this.Height-1); //unten (dunkler)

          e.Graphics.DrawLine(pg, this.Width-1, 0, this.Width-1, this.Height-2); //rechts (heller)
          e.Graphics.DrawLine(pb, this.Width-1, 0, this.Width-1, this.Height-1); //rechts (dunkler)
     }
}

(Ungetestet, aber so ungefähr solltes sein
(bin mir nur unsicher ob Pen oder Brush erwartet wird)

Und doch ohne Rectangle, da der 3D effekt ja eigentlich nur unten und rechts ist, deshalb oben und links nur eine einfach linie.

Nachtrag:
Ich abonniere nicht direkt das Paint Ereignis, da ich davon ausgehen das wir uns im aktuellem Control befinden.
Deshalb überschreibe ich nur die OnPaint Methode, diese wiederum würde das Ereignis Paint auslösen.

Height und Width mit -1, da wir uns sonst außerhalb des Formulars bewegen würden.
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück