Visual Studio: nuevos valores de propiedad "predeterminados" para controles heredados
-
08-06-2019 - |
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?
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.