2009-03-24 4 views
0

La construction de mes baseclasses pour les contrôles de l'interface utilisateur est en cours. J'ai des boutons de commande dérivés avec l'assignation de police personnalisée et mis sur un formulaire, tout va bien ... Cependant, le code identique pour la propriété en lecture seule Font d'une zone de texte n'est pas reconnu correctement sur le même formulaire. Il prend UNIQUEMENT le paramétrage du FORM et ne tient pas compte de sa propre déclaration de police.Police readonly sous-classée de Textbox non reconnue sur le formulaire

public class MyTextbox : TextBox 
{ 
    [ReadOnly(true)] 
    public override Font Font 
    { get { return new 
      Font("Courier New", 12f, FontStyle.Regular, GraphicsUnit.Point); 
      } 
    } 
} 

Répondre

0

Avec l'aide de « nobugz » (Merci), j'ai trouvé ce même échec lorsque vous faites un ComboBox aussi. Mon résultat a été le suivant ...

Mon getter

get { return new Font(...); } 

Cependant, en réponse nobugz, quelque chose ne fonctionnait pas tout à fait raison avec le compilateur, donc dans le constructeur de la classe

clas MyTextbox... 
{ 
    public MyTextbox() 
    { 
     // it defaults itself from its own read-only font "new" object instance and works 
     base.Font = Font; 
    } 
} 
1

La propriété Font est une propriété ambiante. S'il n'a jamais été affecté, il correspond automatiquement à la propriété Font du contrôle de conteneur. Vous ne l'avez jamais attribué.

le faire comme ceci:

public class MyTextbox : TextBox { 
    Font mFont; 
    public MyTextbox() { 
     base.Font = mFont = new Font("Courier New", 12f, FontStyle.Regular, GraphicsUnit.Point); 
    } 

    [ReadOnly(true)] 
    public override Font Font { 
     get { return mFont; } 
    } 
} 
+0

Désolé, n'a pas fonctionné. J'ai collé votre code textuellement et l'ai traîné dans mon formulaire. Avant même que le contrôle ait été autorisé à être ajouté, il est revenu avec Échec de la création de l'élément "myTextbox" ... System.NullReferenceException: référence d'objet non définie sur une instance d'un objet. – DRapp

+0

En outre, le code de mon bouton de commande était verbatim sur le problème "Font", et il fonctionne parfaitement ... aucun paramètre de propriété supplémentaire, et renvoie immédiatement l'objet de police via le GETter ... – DRapp

+0

Got it ... see ma réponse, mais la vôtre m'a aidé ... – DRapp

Questions connexes