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 :

Depuis quel ListView mon menu contextuel est il appelé ?


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Points : 196
    Points
    196
    Par défaut Depuis quel ListView mon menu contextuel est il appelé ?
    Bonjour,

    J'ai une application dans laquelle je dispose de 3 ListView différents.

    Sur chacune de ces ListView je souhaite utiliser un menu contextuel afin de réaliser certaines opérations.

    Ce que je souhaiterai faire c'est dans le code d'exécution de chacune des opérations de mon menu contextuel, connaitre le ListView à partir duquel mon menu contextuel a été appelé afin de sélectionner les bonnes données à traiter.

    Exemple :

    vListView1, vListView2 et vListView3 exploitent le même PopupMenu vPopupMenu1.

    Ce PopupMenu dispose de 2 actions, pour lesquelles je gère l'évènement Click.

    Comment faire depuis vPopupMenu1Action1Click() pour savoir si l'appel a été effectué depuis vListView1, vListView2 ou vListView3 ?

    Merci de votre aide.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 147
    Points : 174
    Points
    174
    Par défaut
    Un question: d'où vient ta classe PopupMenu?

    Pourquoi ne pas gérer l'évenement click au niveau de tes listview, et passer en paramètres les données correspondantes au listview dans le constructeur du PopupMenu (si tu instancie un nouveau popupMenu à chaques fois), ou en mettant à jour certaines propriétés ( si tu ne garde qu'une instance du popupMenu)?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Points : 196
    Points
    196
    Par défaut
    C'est en fait un ContextMenu

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 147
    Points : 174
    Points
    174
    Par défaut
    Ah ok,
    Ce que je te suggere c'est de créer une classe myContextMenu qui hérite de ContextMenu. Tu lui ajoute un constructeur avec argument,et dans le constructeur tu construit ta liste d'items en fonction de l'argument, dans l'évenement click de tes listviews, tu n'as plus qu'à passer l'argument que tu veux à ta nouvelle instance de myContextMenu, cette fois.

    en espérant t'avoir aider

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Points : 196
    Points
    196
    Par défaut
    Merci pour tes réponses.
    C'est en effet une possibilité.
    Dans mon idée, j'essayais plutôt de remonter au travers de l'Object Sender, mais sans succès.

  6. #6
    Membre averti

    Inscrit en
    Novembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2007
    Messages : 197
    Points : 379
    Points
    379
    Par défaut
    En fait ton sender devrait être ton ToolStripMenuItem qui se trouve dans ton ContextMenuStrip. Ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       private void modifierToolStripMenuItem_Click(object sender, EventArgs e) {
          ToolStripMenuItem myTSMI = (ToolStripMenuItem)sender;
          ContextMenuStrip myCMS = (ContextMenuStrip)myTSMI.GetCurrentParent();
          DateTimePicker myDTP = (DateTimePicker)myCMS.SourceControl;
     
      }
    Mon exemple utilise un DateTimePicker, remplace-le par ListView et les affaires reprendront.
    ______________
    Never underestimated the browser
    Ne jamais sous-estimé le navigateur
    Vic Gundotra, Google IO 2009

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Points : 196
    Points
    196
    Par défaut
    Merci, ça marche parfaitement.

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

Discussions similaires

  1. Depuis quel terminal mon site est consulté ?
    Par enzostar dans le forum Langage
    Réponses: 2
    Dernier message: 14/05/2010, 17h33
  2. Pourquoi mon menu n'est pas a sa place ?
    Par flippaeti dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 19/02/2009, 14h45
  3. Un tout petit problème avec mon menu contextuel
    Par jbrasselet dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/10/2007, 15h40
  4. Parametrer L'action de Mon Menu Contextuel
    Par ingui dans le forum IHM
    Réponses: 8
    Dernier message: 02/03/2007, 15h02
  5. [Qt] ListView avec menu contextuel ?
    Par agent007se dans le forum Qt
    Réponses: 12
    Dernier message: 29/11/2006, 13h04

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