2009-06-12 20 views

Respuesta

30

Si no desea crear un control personalizado puede probar esto:

gancho hasta evento de dibujo de la etiqueta.

void label1_Paint(object sender, PaintEventArgs e) 
{ 
    ControlPaint.DrawBorder(e.Graphics, label1.DisplayRectangle, Color.Blue, ButtonBorderStyle.Solid); 
} 

Tomado de here por Andrej Tozon

8

Me encontré con este problema también y terminé usando una solución alternativa.

Crea un control personalizado que consiste en una etiqueta envuelta en un panel.

A continuación, puede usar el panel para crear su borde y cambiar el color a lo que desee.

He encontrado que es una buena idea (aunque toma un poco de tiempo) ajustar todos los controles en su aplicación de todos modos, porque cuando se trata de averiguar que necesita una propiedad personalizada, o cambiar a todos sus controles de de ese tipo, puedes simplemente cambiar el control base y tu aplicación entera cambia.

12

combiné las soluciones de robin.ellis y orandov para obtener un resultado que trabajó lo mejor para mí. Creé un control personalizado que heredó el objeto Label y luego anulé el evento OnPaint.

Public Class nomLabel 
    Inherits Label 

    Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) 
     MyBase.OnPaint(e) 

     ControlPaint.DrawBorder(e.Graphics, e.ClipRectangle, myColor, ButtonBorderStyle.Solid) 
    End Sub 

End Class 

¡Gracias por la ayuda!

+0

cómo usar esto? 'myLabel.BorderStyle = nomLabel'? – AdorableVB

+0

@ AdorableVB, nomLabel es un control personalizado, no un estilo de borde. Utilizaría nomLabel en lugar del control de etiqueta estándar. – Stewbob

+0

yup, lo tengo. creó el mío ayer, pero, el límite está arreglado. Quiero que 'ButtonBorderStyle.Solid' cuando el mouse se cierne y' .None' cuando el mouse se va. el código no funciona, y si uso control personalizado, tampoco aplica el código. – AdorableVB

Cuestiones relacionadas