[VS2005] Ne pas hériter de la propriété Font du parent

Résolu
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 10 juil. 2007 à 09:49
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 10 juil. 2007 à 10:52
Salut à tous,

Sous Windows2000, VS2005,

J'ai adapter un code trouver sur le net pour mes besoins (un bouton avec le style XP) tout marche nickel. la n'est pas le problème. c'est une classe qui hérite de System.Windows.Forms.Control et qui implemente l'interface IButtonControl

mon bouton doit avoir part défaut la font suivante:
- "Arial", 12pt , System.Drawing.FontStyle.Regular

- j'ai surchargé Font de ma classe de base:
- j'ai aussi essayer de mettre un champ privé de type Font.
Mais rien n'y fait lorsque j'insère mon bouton dans un formulaire il prend automatiquement la font du parent...

Est ce quelque'un pourrait m'expliquer comment contourner ce problème.
il y a t'il quelque chose que j'aurais oublier d'implémenter ou une propriété miracle?
J'espère que vous pourrez éclairer ma lanterne avec une petite solution ou un petit lien, bref quelque chose qui pourra me faire avancer, d'avance merci

@+: Ju£i?n
Pensez: Réponse acceptée

2 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
10 juil. 2007 à 10:52
Salut,
Merci pour la réponse.

En fait je viens de trouver à l'instant.
Je faisait une mauvaise surcharge de Font... tout simplement.
Donc en Surchargeant Font et en passant par un champs de type Font cela fait ce que je souhaite.

Je suis vraiment désolé d'avoir  appelé à l'aide alors qu'il suffisait de bien comprendre la surcharge...

Private Font _textFont = New Font("Arial", 12, FontStyle.Regular);
[Category("TIAMA Properties"), Description("Police de caractère du texte du bouton"),
        DefaultValue(TypeOf(Font), "Arial, 12 pt")]
        Public override Font Font
        {
            Get { Return _textFont; }
            Set
            {
                _textFont = value;
                this.Invalidate();
            }
        } , ----
(Coloration syntaxique automatique par Kenji)

Merci quand même pour l'idée

@+: Ju£i?n
Pensez: Réponse acceptée
3
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
10 juil. 2007 à 10:29
Salut,
Tu pourrais overrider OnPaint, faire base.OnPaint, puis redessiner toi-même le texte par au-dessus ?
Oui c'est pas top... mais si tout ce que tu a essayé ne marche pas je sais pas...

Ou alors un artifice :
Tu override OnPaint, tu change la police du parent par celle que tu veux
Tu fais base.OnPaint
Tu remet la police du parent...

<hr size="2" width="100%" />Julien.
0
Rejoignez-nous