Pregunta

Estoy buscando ayuda para configurar un nuevo valor de propiedad predeterminado para un control heredado en Visual Studio:

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 del diseñador obtiene un mensaje explícito. mycontrol.DropDownItems = 50; línea.

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

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í quiero 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 existe alguna otra solución para obtener el resultado que quiero?

¿Fue útil?

Solución

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top