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

VB.NET Discussion :

Trouver qui a appelé le menuContext ?


Sujet :

VB.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 22
    Par défaut Trouver qui a appelé le menuContext ?
    Bonjour

    Je débute en VB et j'ai un peu de mal a trouver des informations.
    Le problème je fait une application ou il a de nombreux boutons, sur ces boutons il y a un menuContext associe.
    Lors que je click sur un item du menuContext j'aimerai savoir quelle bouton a déclenche le menuContext.

    Avec Ca je trouve le menuContext mais j'arrive pas a remonte au bouton qui appeler le menuContext

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Private Sub ParametreToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ParametreToolStripMenuItem1.Click
            MsgBox(CType(sender, ToolStripMenuItem).Owner, 0)
        End Sub
    Merci A+

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Par défaut
    Le bouton que tu viens de cliquer possède forcement le Focus, du coup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox(Me.ActiveControl.Name)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 22
    Par défaut
    Merci Totanne de ta réponse

    Mais cela marche a moitie
    En effet l'utilisateur ne click gauche pas forcement sur le bouton pour afficher le context menu, il click droit et donc le bouton a pas le focus (j'ai testé)

    aurait il une feinte ?

    J'aimerai que lors que l'on clik sur le bouton sa lance une action par defaut et que avec le clik droit sa affiche le contextmenu pour parametre le bouton.

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    il faut un evenement pour les elements du menu et non pas pour le menu

    en mode design si tu clic sur ton contextmenustrip, il s'afiche et il faut faire double clic sur un element pour avoir un event sur l'element associé


    après soit tu fais une sub par element
    soit tu fais une sub pour tous les elements (handles machin, bidul , truc) et sender te diras lequel c'est
    soit t'as trop d'éléments et au démarrage du form tu fais une boucle sur les elements qui addhandler
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 22
    Par défaut
    Pol63 il semblerai que te n'ai pas comprit ce que je veux faire

    Je ne veux pas ajoute un handler a un bouton du menu.
    Je veux pas définir avec la vue de design quelle élément va appelle le context menu.
    Je veux savoir elle est le bouton(Ou élément) qui a appelle le context menu avec le click droit.
    L'élément sender des handlers des boutons du context menu me revois vers le contextMenu. Il ya pas un moyen de la de savoir qui a appelé le menu ?

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    si c'est toi qui ouvre le contextmenu, tu dois le savoir, non ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 22
    Par défaut
    En effet moi je connait le bouton qui a appeler le menu vu que c'est moi qui click
    Mais dans le context menu il a des éléments et j'aimerais que quand je click sur un élément du menu récupérer les infos du boutons.

    Ce que je veux faire c'est typiquement un clik droit->propriété sur un bouton et afficher le Text du bouton dans une popup.

  8. #8
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    Bonjour,

    On obtient le dernier contrôle qui a provoqué l'affichage d'un menu contextuel à l'aide de la propriété SourceControl du ContextMenuStrip, voici un exemple qui affiche le nom du contrôle dans un label lors du clic sur l'item Properties du menu contextuel :
    Code VB.Net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub PropertiesToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles PropertiesToolStripMenuItem.Click
        Dim appelant As Control = ContextMenuStrip1.SourceControl
        ' Caster ici en type réel (Button, CheckBox... si besoin)
        Label1.Text = appelant.Name
    End Sub

    Note : si cette propriété doit être utilisée souvent, il serait judicieux de stocker dans un champ (privé) de type Control (penser à tester s'il ne vaut pas Nothing dans ce cas) lors de l'évènement ContextMenu_Opening (pas sûr du nom exact j'écris de mémoire ).

    Cordialement !

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 22
    Par défaut
    Merci beaucoup c'était exactement ca que je cherchai

  10. #10
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    Citation Envoyé par Sehnsucht Voir le message
    Note : si cette propriété doit être utilisée souvent, il serait judicieux de stocker dans un champ (privé) de type Control
    dans quel but ?
    parce qu'à vue de nez cette propriété dois retourner une variable donc stocker la meme chose dans une 2ème variable n'aurait alors pas d'utilité
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #11
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    Citation Envoyé par Sehnsucht Voir le message
    Note : si cette propriété doit être utilisée souvent, il serait judicieux de stocker dans un champ (privé) de type Control
    dans quel but ?
    parce qu'à vue de nez cette propriété dois retourner une variable donc stocker la meme chose dans une 2ème variable n'aurait alors pas d'utilité
    En fait ce n'est pas le cas, SourceControl appelle SourceControlInternal de ToolStripDropDown qui lui même appelle un TryCast sur la méthode GetObject d'un PropertyStore, après ce n'était qu'une indication supplémentaire

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/04/2006, 14h32
  2. [Access] Trouver qui a le plus grand nombre de visites
    Par maxidoh dans le forum Langage SQL
    Réponses: 13
    Dernier message: 03/04/2006, 03h00
  3. structures qui s'appellent réciproquement
    Par salseropom dans le forum C
    Réponses: 12
    Dernier message: 27/03/2006, 17h40
  4. W2000 serveur Comment trouver qui est connecté ?
    Par Mariussy dans le forum Windows Serveur
    Réponses: 5
    Dernier message: 06/12/2005, 14h06
  5. formulaire qui doit appeler plusieurs pages
    Par rohel dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 27/01/2005, 08h59

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