Estoy creando un control de etiqueta personalizado (simplemente heredando el control de etiqueta estándar y volviendo a pintar el fondo y el texto) porque necesito un fondo y un borde muy específicos. En el constructor del control, establezco la propiedad AutoSize en falso para que pueda tener un tamaño predeterminado estándar para la nueva etiqueta.El control de etiqueta se comporta de manera diferente en tiempo de diseño vs. tiempo de ejecución
Public Sub New()
'Set the default size of the control to 75x24
Me.Height = 24
Me.Width = 75
'Turn off the autosize property.
Me.AutoSize = False
'Turn on double-buffering.
Me.DoubleBuffered = True
End Sub
En mi aplicación que utiliza este control, si creo la nueva etiqueta personalizada en tiempo de ejecución (en código), se mantiene la propiedad AutoSize Falso, y funciona correctamente.
Si trato de agregar la nueva etiqueta personalizada a mi formulario en el momento del diseño, viene con la propiedad AutoSize establecida en True y tengo que configurarla manualmente en False en la ventana de propiedades. No es un gran problema, pero no entiendo por qué el comportamiento es diferente.
¿Alguna idea de qué está causando esta diferencia en el comportamiento?
Como nota al margen, en su constructor, establecería el AutoSize en falso antes de establecer el alto y el ancho. – NascarEd
@NascarEd, gracias por la nota. Lo he intentado de ambas formas y no parece marcar la diferencia. – Stewbob
Como otra nota al margen: después de crear un control personalizado, siempre es una buena idea colocarlo en un formulario y examinar el código que genera el diseñador. El diseñador generalmente hace cosas que no esperarías. – NascarEd