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#][Débutant] Comment appeler la meme fonction depuis plusieurs items d un menu


Sujet :

Windows Forms

  1. #1
    Membre extrêmement actif Avatar de Cazaux-Moutou-Philippe
    Inscrit en
    Mai 2005
    Messages
    674
    Détails du profil
    Informations personnelles :
    Âge : 74

    Informations forums :
    Inscription : Mai 2005
    Messages : 674
    Points : 171
    Points
    171
    Par défaut [C#][Débutant] Comment appeler la meme fonction depuis plusieurs items d un menu
    Bonjour

    Comment appeler la meme fonction depuis plusieurs items d un menu

    voici mon pb
    j ai plusieurs item d un menu

    Caramel
    Coffee
    Blue

    etc

    j ai une fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            private void doSkin(string sSkin)
            {
                 defaultLookAndFeel1.LookAndFeel.SkinName = sSkin;
            }
    mais sur aucun des itemsCLick je ne la voi

    comment faire pourque je puisse l affecter a un itemclick ??

    merci
    Philippe Cazaux-Moutou
    C#
    Delphi
    Windev

    Guadeloupe

    www.ancestrologie.net/fr

  2. #2
    Membre régulier Avatar de Davide
    Profil pro
    Inscrit en
    Août 2003
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 80
    Points : 84
    Points
    84
    Par défaut
    Si ta fonction ne fait pas partie de la meme classe que ton menu c'est normal vu qu'il est en private..
    ______________________

    DaViDe

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 68
    Points : 63
    Points
    63
    Par défaut
    Bonjour

    Pour l'affecter à un itemClick, il faudrait que la fonction soit de la forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private void menuItemXXX_Click(object sender, System.EventArgs e)
    ensuite, libre a toi de brancher tous tes items sur cette fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    this.menuItemA.Click += new System.EventHandler(this.menuItemXXX_Click);
    this.menuItemB.Click += new System.EventHandler(this.menuItemXXX_Click);
    this.menuItemC.Click += new System.EventHandler(this.menuItemXXX_Click);
    Sinon, tu peux brancher chaque item sur une fonction, qui elle meme appellera la fonction que tu as déja faite en lui passant un parametre différent à chaque fois


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    this.menuItemA.Click += new System.EventHandler(this.menuItemA_Click);
    this.menuItemB.Click += new System.EventHandler(this.menuItemB_Click);
    this.menuItemC.Click += new System.EventHandler(this.menuItemC_Click);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private void menuItemA_Click(object sender, System.EventArgs e)
    {    
        doSkin("A")
    }
    private void menuItemB_Click(object sender, System.EventArgs e)
    {    
        doSkin("B")
    }
    private void menuItemC_Click(object sender, System.EventArgs e)
    {    
        doSkin("C")
    }
    En espérant avoir été utile et n'avoir pas dit trop de bétises :-)

    Bonne journée

  4. #4
    Membre extrêmement actif Avatar de Cazaux-Moutou-Philippe
    Inscrit en
    Mai 2005
    Messages
    674
    Détails du profil
    Informations personnelles :
    Âge : 74

    Informations forums :
    Inscription : Mai 2005
    Messages : 674
    Points : 171
    Points
    171
    Par défaut
    Merci de ta réponse, mais c est pas ce que je veux, car ce que tu viens de me decrire c est ce qui est par défaut

    moi je voudrais creer une fonction : doSkin

    et que cette fonction puisse etre visible et affectable a un evenement click d un bouton, item de menu ou autre
    Philippe Cazaux-Moutou
    C#
    Delphi
    Windev

    Guadeloupe

    www.ancestrologie.net/fr

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 128
    Points : 80
    Points
    80
    Par défaut
    Tu crées ta fonction doSkin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void doSkin(object sender, System.EventArgs e)
    {
          // ici, ce que fait la fonction
          // appel à une fonction qui fait "defaultLookAndFeel1.LookAndFeel.SkinName = sSkin;" par exemple
    }
    Puis tu crées tes buttons, et pour chacun tu leurs affectes la méthode doSkin pour le click.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    this.menuCaramel.Click += new System.EventHandler(this.doSkin);
    this.menuCoffee.Click += new System.EventHandler(this.doSkin);
    this.menuBlue.Click += new System.EventHandler(this.doSkin);
    edit :
    dans les définition de click, la méthode en paramètre à mettre est this.doSkin, et non pas this.doSkin_Click comme je l'avais écrit, désolé.
    C'est corrigé.

  6. #6
    Membre extrêmement actif Avatar de Cazaux-Moutou-Philippe
    Inscrit en
    Mai 2005
    Messages
    674
    Détails du profil
    Informations personnelles :
    Âge : 74

    Informations forums :
    Inscription : Mai 2005
    Messages : 674
    Points : 171
    Points
    171
    Par défaut
    Quand je fais ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            // Gestion des skins -------------------------------------------------------------------------------
            this.barButtonItem3_ItemClick += new System.EventHandler(this.doSkin_Click);
     
            private void doSkins(object sender, System.EventArgs e)
            {
                string sSkin = e.Item.Caption;
                defaultLookAndFeel1.LookAndFeel.SkinName = sSkin;
     
                // On stocke dans la BDR le dernier skin choisi
                _PCMAppli.RegistryWriteValue(_PCMAppli.sRegistryKeySettings, "Skin", sSkin);
            }
    j ai plein d erreur de compil

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Erreur    1    Jeton 'this' non valide dans la déclaration de membres de la classe, de la structure ou de l'interface    D:\Projets_Net\PCM_DVDtheque\Main\FMain.cs    123    9    PCM_DVDTheque
    Erreur    2    Jeton '+=' non valide dans la déclaration de membres de la classe, de la structure ou de l'interface    D:\Projets_Net\PCM_DVDtheque\Main\FMain.cs    123    39    PCM_DVDTheque
    Erreur    3    Jeton '(' non valide dans la déclaration de membres de la classe, de la structure ou de l'interface    D:\Projets_Net\PCM_DVDtheque\Main\FMain.cs    123    65    PCM_DVDTheque
    Philippe Cazaux-Moutou
    C#
    Delphi
    Windev

    Guadeloupe

    www.ancestrologie.net/fr

  7. #7
    Membre régulier Avatar de netomin
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 81
    Points : 102
    Points
    102
    Par défaut
    Si ta fonction s'apelle doSkins
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private void doSkins(object sender, System.EventArgs e)
    Tu dois faire plutôt ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.barButtonItem3.Click += new System.EventHandler(this.doSkins);
    Et si t'a:
    Jeton 'this' non valide dans la déclaration de membres de la classe
    C'est parce que tu met pas dans le bon endroit la déclaration de ton Eventhandler, assure toi qu'il est bien là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    public Form1()
    {
    //
    // Requis pour la prise en charge du Concepteur Windows Forms
    //
    InitializeComponent();
    //
    // TODO : ajoutez le code du constructeur après l'appel à InitializeComponent
    //
    this.barButtonItem3.Click += new System.EventHandler(this.doSkins);
    
    dans ta form ici dans l'exemple form1.

    à +
    Il y a toujours une réponse, il suffit de la trouver.

  8. #8
    Membre extrêmement actif Avatar de Cazaux-Moutou-Philippe
    Inscrit en
    Mai 2005
    Messages
    674
    Détails du profil
    Informations personnelles :
    Âge : 74

    Informations forums :
    Inscription : Mai 2005
    Messages : 674
    Points : 171
    Points
    171
    Par défaut
    Merci c est tout bon, je l avais pas mis au bon endroit
    Philippe Cazaux-Moutou
    C#
    Delphi
    Windev

    Guadeloupe

    www.ancestrologie.net/fr

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

Discussions similaires

  1. getattr() ? Appel d'une fonction depuis une fonction
    Par frites.saucisse dans le forum Général Python
    Réponses: 8
    Dernier message: 10/10/2008, 14h21
  2. Appel d'une fonction depuis sous formulaire
    Par El_Manu dans le forum VBA Access
    Réponses: 7
    Dernier message: 02/11/2007, 17h21
  3. appel d'une fonction depuis un ss formulaire
    Par petitours dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/10/2007, 17h57
  4. Appeler une autre fonction depuis un signal
    Par laurent_ifips dans le forum POSIX
    Réponses: 6
    Dernier message: 24/12/2005, 15h40
  5. Réponses: 2
    Dernier message: 15/08/2005, 20h54

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