2008-08-10 16 views
9

estoy en busca de ayuda para configurar un nuevo valor de la propiedad predeterminada para un control heredado en Visual Studio:Visual Studio - nuevos valores de las propiedades "por defecto" para los controles heredados

class NewCombo : System.Windows.Forms.ComboBox 
{ 
    public NewCombo() { DropDownItems = 50; } 
} 

El problema es que la propiedad de la clase base DropDownItems tiene un atributo 'predeterminado' establecido que es un valor diferente (no 50). Como resultado, cuando arrastro el control a un formulario, el archivo de diseñador obtiene una línea mycontrol.DropDownItems = 50; explícita.

Al principio esto no importa. Pero si más tarde cambio mi clase heredada a DropDownItems = 45; en el constructor, esto no afecta a ninguno de los controles en ningún formulario, ya que todos esos archivos de diseño todavía tienen el valor 50 codificado en ellos. Y el objetivo era tener el valor establecido en un solo lugar para poder tratar con el cliente cambiando de opinión.

Obviamente, si estuviera creando mi propia propiedad personalizada en la subclase, podría darle su propio atributo predeterminado de diseñador de lo que quisiera. Pero aquí estoy queriendo cambiar los valores predeterminados de las propiedades en la base. ¿Hay alguna forma de aplicar atributos de Visual Studio a un miembro de la clase base? ¿O hay alguna otra solución para obtener el resultado que quiero?

Respuesta

4

En su clase derivada, necesita anular (o sombrear usando nuevo) la propiedad en cuestión y luego volver a aplicar el atributo de valor predeterminado.

Cuestiones relacionadas