Si utiliza la utilidad ZoomIt de SysInternals, puede ver que esto es simplemente dos líneas. Una gris oscura sobre una blanca. Dibujar líneas es lo suficientemente simple con Graphics.DrawLine(), solo necesita asegurarse de elegir un color oscuro que funcione bien con el BackColor del formulario. Eso no siempre es color gris oscuro si el usuario selecciona otro tema. Lo que hace que el truco de GroupBox caiga.
Este código de ejemplo es que funciona:
protected override void OnPaint(PaintEventArgs e) {
Color back = this.BackColor;
Color dark = Color.FromArgb(back.R >> 1, back.G >> 1, back.B >> 1);
int y = button1.Bottom + 20;
using (var pen = new Pen(dark)) {
e.Graphics.DrawLine(pen, 30, y, this.ClientSize.Width - 30, y);
}
e.Graphics.DrawLine(Pens.White, 30, y+1, this.ClientSize.Width - 30, y+1);
}
Nota el uso de un botón 1 en este código, hay que asegurarse de que la línea se dibuja a la altura correcta, incluso cuando se reajustarán el formulario. Elija su propio control como referencia para la línea.
Hola @Tor, lo intenté una vez, pero si el usuario usa máscaras en Windows, ¡esto puede hacer que la línea se vea muy extraña! Estoy buscando y una alternativa a esta técnica. – RHaguiuda