IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Forcer le designer à utiliser une méthode


Sujet :

Windows Forms

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Points : 1 050
    Points
    1 050
    Par défaut Forcer le designer à utiliser une méthode
    Salut
    -----

    J'ai un petit soucis avec un contrôle personnalisé.
    J'ai une classe interne que je ne souhaite pas mettre à disposition via une propriété, surtout en écriture.
    Par contre je propose à l'utilisateur une méthode de type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void ChangeComportment(Control control, Comportment comportment)
    Ça lui permet de modifier le comportement (énum) d'un contrôle donné contenu dans mon contrôle parent.

    J'accède à la configuration des comportements en mode designer via un éditeur de propriétés personnalisé qui m'ouvre une fenêtre modale et qui utilise en interne ChangeComportment();

    Tout ceci fonctionne parfaitement, MAIS..

    Je dois évidemment sérialiser ces informations, et donc j'ai besoin que le designer de VS sérialise non pas sous la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonObjet.Mapropriété = ....
    Mais sous la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonObjet.ChangeComportment (control, comportment).
    Bref, comme le fait le toolTipText, qui produit dans le designer une ligne du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.toolTip1.SetToolTip(control, chaine));
    Ma question est : Comment fait-on pour obtenir pareil comportement?

    Merci d'avance,
    Claude

  2. #2
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour ClaudeBg
    Pour le tooltip il utilise une ExtendedProperty ( une propriete "etendue" qu'il expose à un ou plusieurs controls de type differents) en implementant l'interface IExtenderProvider....
    il faut donc que ton control expose sa prop comme une extended propriete..


    bon code

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Points : 1 050
    Points
    1 050
    Par défaut
    Salut
    -----

    Merci beaucoup.
    Pour cette fois, j'ai contourné le problème et je m'y suis pris autrement, même si ça a été un peu plus compliqué.

    Mais je suis ravi d'obtenir cette réponse, maintenant je vais savoir grâce à toi comment m'y prendre dans le futur lorsque pareil cas se représentera.

    J'en profite pour signaler que j'ai placé mes contrôles dans le topic sur les contrôles gratuits, au cas où quelqu'un les trouverait utiles.

    A+
    Claude

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/10/2007, 11h01
  2. [POO] utiliser une méthode présente dans une autre classe
    Par arnaudperfect dans le forum Langage
    Réponses: 5
    Dernier message: 19/10/2007, 14h23
  3. Réponses: 1
    Dernier message: 11/06/2007, 17h44
  4. Réponses: 1
    Dernier message: 11/04/2006, 20h43
  5. utiliser une méthode en callback
    Par inertia dans le forum MFC
    Réponses: 3
    Dernier message: 23/06/2005, 17h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo