2008-08-10 24 views
9

Je suis à la recherche d'aide pour configurer une nouvelle valeur de la propriété par défaut pour un contrôle hérité dans Visual Studio:Visual Studio - de nouvelles valeurs de propriété « par défaut » pour les contrôles hérités

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

Le problème est que la propriété de la classe de base DropDownItems a un attribut 'default' qui est une valeur différente (pas 50). Par conséquent, lorsque je fais glisser le contrôle sur un formulaire, le fichier de concepteur obtient une ligne explicite mycontrol.DropDownItems = 50;.

Au début, cela n'a pas d'importance. Mais si plus tard je change ma classe héritée en DropDownItems = 45; dans le constructeur ceci n'affecte aucun des contrôles sur n'importe quelle forme puisque tous ces fichiers de concepteur ont encore la valeur 50 codée en dur dedans. Et le but était d'avoir la valeur en un seul endroit afin que je puisse traiter avec le client qui change d'avis.

De toute évidence, si je créais ma propre propriété personnalisée dans la sous-classe, je pourrais lui donner son propre attribut par défaut du concepteur de tout ce que je voulais. Mais ici, je veux changer les valeurs par défaut des propriétés dans la base. Est-il possible d'appliquer des attributs Visual Studio à un membre de classe de base? Ou y at-il une autre solution pour obtenir le résultat que je veux?

Répondre

4

Dans votre classe dérivée, vous devez soit remplacer (ou ombrer en utilisant new) la propriété en question, puis réappliquer l'attribut de valeur par défaut.