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 :

[C# VS2005] Appel procédure avec bouton dynamique


Sujet :

Windows Forms

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2003
    Messages : 332
    Par défaut [C# VS2005] Appel procédure avec bouton dynamique
    Bonjour,

    Je met dymamiquement un bouton sur ma form.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Windows.Forms.Button MyButton = new System.Windows.Forms.Button();
    Comment dois-je procéder pour quand on clique dessus, je lance une procédure ?
    J'ai essayé ceci, mais ca ne marche pas, j'ai une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyButton.Click = MaProcedure;
    Merci
    Fred

  2. #2
    Membre expérimenté Avatar de scifire
    Inscrit en
    Juillet 2004
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 226
    Par défaut
    Tu dois faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyButton.Click += MaProcedure;
    C'est aussi simple que ca

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2003
    Messages : 332
    Par défaut
    C'est vraiment très simple

    Si par contre j'ai des paramètres, comme par exemple le Mouse Click du button :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    button_start_MouseClick(object sender, MouseEventArgs e)
    Dois-je mettre ces paramètres dans ma procédure ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private void MaProcedure (object sender, MouseEventArgs e) {....}

  4. #4
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    Citation Envoyé par scifire
    Tu dois faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyButton.Click += MaProcedure;
    C'est aussi simple que ca

    non.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MyButton.Click += new System.EventHandler(MaProcedure);
    De plus effectivement, ta méthode doit avoir la signature adéquate par rapport au délegué que tu "implémentes".

    C'est à dire que pour les handlers System.EventHandler ta méthode doit avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private void MaMethode(object sender, System.EventArgs e)
    {
     
    }
    et pas autre chose. Après en fonction des délegués la signature change mais 90% des évènements de l'interface graphique utilise le délégué donné au dessus.

  5. #5
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    oui si ta procédure n'a pas de paramètres, tu peux créer un délégué¨

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private delegate void CallMaproc();
    void procedure()
    {
    ...
    }
    void main()
    {
     Mybutton.Click += new CallMaproc(procedure);
    }

  6. #6
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    Citation Envoyé par bossun
    oui si ta procédure n'a pas de paramètres, tu peux créer un délégué¨
    non non, dans tout les cas, il faut faire comme indiqué au dessus. l'évènement Clik attend un délegué bien particulier : System.EventHandler. tu ne peux pas passer n'importe quoi,n'importe comment à ton évènement.

    Liens :
    L'évènement Click de Button

    Le délégué utilisé par l'évènement Click

    Et puis même avec des paras tu passes par un délégué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    private delegate void CallMaproc(string p1, int p2);
    void procedure(string p1, int p2)
    {
    ...
    }
    void main()
    {
     MaClasse.MonEvent += new CallMaproc(procedure);
    }

  7. #7
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    Citation Envoyé par dev01
    non non, dans tout les cas, il faut faire comme indiqué au dessus. l'évènement Clik attend un délegué bien particulier : System.EventHandler. tu ne peux pas passer n'importe quoi,n'importe comment à ton évènement.
    ah oui c'est juste , étonnant

  8. #8
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    Citation Envoyé par bossun
    ah oui c'est juste , étonnant
    non logique, un pointeur de fonction ne peux pas appeler n'importe quelle fonction sinon il ne pourait passer les arguments ...

Discussions similaires

  1. Appel par bouton d'une procédure avec argument
    Par defluc dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/05/2012, 15h48
  2. appel procédure avec paramètres ds fonction
    Par cpattin dans le forum VB.NET
    Réponses: 7
    Dernier message: 14/06/2007, 22h11
  3. [FLASH 8] Pb sur bouton avec texte dynamique
    Par iceman2001 dans le forum Flash
    Réponses: 11
    Dernier message: 27/06/2006, 12h58
  4. [VBA-E] bouton dynamique avec fonction
    Par ogenki dans le forum Macros et VBA Excel
    Réponses: 38
    Dernier message: 06/02/2006, 12h43
  5. Problème avec tableaux dynamiques et procédure
    Par K20 dans le forum Langage
    Réponses: 11
    Dernier message: 06/01/2006, 20h51

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