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 :

Menu dynamique - event handler


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 30
    Points : 18
    Points
    18
    Par défaut Menu dynamique - event handler
    Bonjour,

    Je fais une classe de création de menu dynamique.
    La classe client (dans le main) fait appel à ma classe pour créer le menu, je créé le menu et les item, et j'ajoute un handler pour récupérer le clic sur le menu.
    Je voudrais pouvoir retouner à la classe client le menu cliqué.
    C'est ici que je n'arrive pas faire.

    En gros je voudrais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    MenuDynamique.addmenu (param du menu...., MéthodeGestionMenu);
     
    MéthodeGestionMenu (string Menu) {...};  étant une méthode qui récupère
     le nom du menu cliqué
    Cela doit revenir à lancer une méthode passée en paramètre.

    Les questions sont :
    - comment passer une méthode en paramètre ?
    - comment appeler une méthode passée en paramètre ?

    Merci por votre aide.

  2. #2
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Hello,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public void AddMenu(string text, EventHandler onClick)
    {
    MenuItem mi = ..
    mi.Text = Name;
    mi.Click += onClick;
    }
    que tu appelles après ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    private void OnButton1Click(object sender, EventArgs e)
    {
      MessageBox.Show("Méthode 1 !");
    }
     
    private void OnButton2Click(object sender, EventArgs e)
    {
      MessageBox.Show("Méthode 2 !");
    }
     
    AddMenu("Menu1", ..., this.OnButton1Click);
    AddMenu("Menu2", ..., this.OnButton2Click);
    AddMenu("Menu3", ..., delegate(object sender, EventArgs e) { MessageBox.Show("Méthode anonyme !"); });
    ಠ_ಠ

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Merci pour ton aide, j'ai une erreur à la compil.

    Ici le code principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;
    using MYCLASS;
     
    namespace DemoForm
    {
        public class MainClass
        {
            public void MenuProc(object sender, EventArgs e)
            {
                MessageBox.Show("Méthode 1 !");
            }
        }
     
     
     
        static class Program
        {
            /// <summary>
            /// Point d'entrée principal de l'application.
            /// </summary>
            [STAThread]
            static void Main()
            {
                int iError;
                string sMainWindow = "Main";
     
     
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
     
     
                // create main menu
                iError = MyClass.MenuAdd(sMainWindow, "m11", 1, 1, "File", "");
                iError = MyClass.MenuAdd(sMainWindow, "m12", 1, 2, "&Open", "");
                iError = MyClass.MenuAdd(sMainWindow, "m13", 1, 3, "&Save", "");
                iError = MyClass.MenuAdd(sMainWindow, "m14", 1, 4, "&Quit", "");
     
                // create main window
                MyClass.WindowCreate(sMainWindow, 0, 0, 0, 0, "name=DemoForm v1.0", MainClass.MenuProc);  // ERREUR ICI
            }
        }
    }
    L'erreur est :
    "Une référence d'objet est requise pour la propriété, la méthode ou le champ non static 'DemoForm.MainClass.MenuProc (object, System.EventArgs)'"
    sur la dernière ligne de code MyClass.WindowCreate ...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Bon, il fallait mettre un "static":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            public static void MenuProc(object sender, EventArgs e)
    Encore merci pour ton aide Guulh.

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

Discussions similaires

  1. ajout d'event handler sur des objet contenus dans un dataTemplate généré dynamiquement
    Par ElSpopo dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 10/12/2013, 10h57
  2. [Free Pascal] Intégrer des valeurs dans un menu dynamique
    Par boullery dans le forum Free Pascal
    Réponses: 16
    Dernier message: 30/03/2005, 17h04
  3. Créer un sous-menu dynamiquement
    Par PurL dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/09/2004, 10h31
  4. [JSP]menu dynamique en jsp
    Par laouedjahmed dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 22/03/2004, 10h50
  5. Menu dynamique sous Flash MX
    Par dens63 dans le forum Flash
    Réponses: 7
    Dernier message: 29/10/2003, 15h46

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