En C # Winforms, ¿hay alguna forma de poner un borde punteado alrededor de todos los controles y mostrar puntos de agarre al seleccionar controles específicos en tiempo de ejecución?

Trabajo en un equipo trabajando en un IDE similar a Visual Studio para desarrollar código Winform personalizado para nuestros clientes locales. En nuestro código, tenemos controles de usuario anulados para facilitar nuestras tareas, pero la mayoría de nuestros controles se derivan de controles básicos de C # Winform.

Actualmente necesito ayuda para implementar el borde punteado alrededor de todos nuestros controles, con el tipo de puntos de agarre proporcionados por Visual Studio.

Controles no seleccionados

Controles seleccionados

Esta característica es muy demandada, ya que puede ayudar a alinear sin compensación las pautas visuales.

Actualmente hemos implementado un borde oscuro alrededor de todos los controles, usando

this.BackColor = Color.Black;
this.Height = ComboBox.Height + 4;

Lo que pone un borde negro alrededor de los Controles generados, que en el fragmento de código anterior es un ComboBox.

Un miembro nos indicó el uso de márgenes y relleno como se muestra en la documentación de Microsoft:https://msdn.microsoft.com/library/3z3f9e8b(v=vs.110)

Pero esto es principalmente teoría y no parece ayudar mucho. Lo más cercano que ha llegado a resolver este problema hasta ahora ha sido un en líneaEnlace CodeProject:

public class MyGroupBox : GroupBox
{
    protected override void OnPaint(PaintEventArgs e)
    {
    base.OnPaint(e);
    ControlPaint.DrawBorder(e.Graphics, ClientRectangle,
        Color.Black, BORDER_SIZE, ButtonBorderStyle.Inset,
        Color.Black, BORDER_SIZE, ButtonBorderStyle.Inset,
        Color.Black, BORDER_SIZE, ButtonBorderStyle.Inset,
        Color.Black, BORDER_SIZE, ButtonBorderStyle.Inset);
    } 
}

Estoy sorprendido de no encontrar una coincidencia cercana a mi búsqueda hasta ahora, tal vez estoy usando la terminología incorrecta, ya que recientemente me metí en la programación en este dominio.

Creo que las futuras búsquedas en línea se beneficiarán si se resuelve este problema. Mirando hacia adelante para los indicadores forman aquellos con experiencia en este problema. Realmente aprecio cualquier ayuda en esta dirección.

Respuestas a la pregunta(4)

Su respuesta a la pregunta