¿Cómo le dice al diseñador el valor predeterminado de una propiedad cuando no es uno de los tipos admitidos por DefaultValue()
? Por ejemplo, un Padding
, o un Font
.¿Cómo puede saber el diseñador de C# la propiedad predeterminada para un relleno u otro objeto/estructura en C#
Normalmente, cuando utiliza un control de Windows Forms, los valores predeterminados estarán en una fuente normal en la ventana Propiedades, y los valores modificados (no predeterminados) estarán en negrita. P.ej.
En esta muestra, el valor por defecto de ShowAddress
es false
y el valor por defecto de ShowName
es true
. Este efecto se consigue con el siguiente:
[DefaultValue(false)]
public bool ShowAddress {
get { return mShowAddress; }
set {
mShowAddress = value;
Invalidate();
}
}
[DefaultValue(true)]
public bool ShowName { ... }
Sin embargo, cuando traté de hacer algo por Padding
, fracasé miserablemente:
[DefaultValue(new Padding(2))]
public Padding LabelPadding { ... }
Lo que por supuesto no se compilará.
¿Cómo demonios haría esto?
no parece trabajar para yo. Utilizando Visual C# 2008. Luego de ingresar el código, escribió la propiedad al diseñador del formulario, luego de volver a establecerlo de manera predeterminada, y nunca quitó la negrita en la Ventana de Propiedades. –
Tampoco funciona en Visual C# 2010 –
Lo siento, tuve el nombre equivocado. También agregué un enlace a la documentación. –