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 :

supprimer un Item dans un context menu strip


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Points : 49
    Points
    49
    Par défaut supprimer un Item dans un context menu strip
    Bonjour, voila j'explique :

    dans mon programme, lorsque l'utilisateur clique sur un bouton, sa créer un Item dans un contextMenuStrip qui porte le nom entrer dans un textbox,ainsi que deux sous-items, un qui s'appelle modifier et un qui s'appelle supprimer.
    voila le code qui me permet de créer tout sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public prog As New ToolStripMenuItem
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    prog.Name = TextBox3.Text & "menuitem"
                    prog.Text = Me.TextBox3.Text
                    start.ProgramationsToolStripMenuItem.DropDownItems.Add(prog)
                    prog.DropDownItems.Add("Modifier")
                    prog.DropDownItems.Add("Supprimer")
    bon voila jusque la il n'y a pas de problèmes, les problèmes arrivent quand je veux affecter des actions aux sous-items Modifier et Supprimer.
    le sous-item supprimer doit me supprimer l'Item que j'ai créer précédament, ainsi que ses deux sous-item.
    pour cela je créer une sub :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub supr_prog(ByVal sender As System.Object, ByVal e As System.EventArgs)
            start.ProgramationsToolStripMenuItem.DropDownItems.Remove(prog)
        End Sub
    maintenant mon problème c'est : comment appeller cette sub en cliquant sur le sous-item "Supprimer"? je suppose que c'est au moment de la création du sous-item "supprimer" quil faut mettre un code de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    prog.DropDownItems.Add("Supprimer", Image.FromFile(String.Empty),onClick:=supr_prog(Nothing,Nothing))
    Seulement,les deux nothing que j'ai mis en argument pour sender et e ne sont pas accepter,

    que dois-je metre comme argument a sender et a e?

    merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Tu ne dois pas mettre d'argument : la méthode n'est pas appelée à cet endroit là, tu la passes en paramètre pour que le ToolStripMenuItem sache quelle méthode appeler lors d'un clic. Il faut écrire l'instruction comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    prog.DropDownItems.Add("Supprimer", Image.FromFile(String.Empty), AddressOf supr_prog)
    (ou un truc dans le genre, je connais mal la syntaxe VB.NET...)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Points : 49
    Points
    49
    Par défaut
    apparament ya un problème aussi :
    lorsque je fait un essai, une foi arriver sur cette ligne, il me trouve une erreur:
    "Le chemin daccé n'a pas une forme conforme"

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par fabienlege Voir le message
    "Le chemin daccé n'a pas une forme conforme"
    M'étonne pas... tu passes une chaine vide en paramètre de Image.FromFile

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Points : 49
    Points
    49
    Par défaut
    Ah c'est pour sa.
    Ok donc sa c'est résolu
    et il reste encore un tout dernier petit problème :
    maintenant c'est bon le ContextMenuStrip s'ouvre avec le clic gauche mais sa m'affiche un truc dans la barre des tache...
    quand j'ouvre mon menu g un truc qui s'affiche, si je passe j'en est un deuxième qui s'ouvre et meme un troisième si je passes dans un sous-sous menu.
    lorsque je quite le menu tout s'en va...

    d'ou sa vien sa?

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    j'ai rien compris
    c'est quoi un "truc" ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Points : 49
    Points
    49
    Par défaut
    je sait pas comment on peut appellé sa, Quand tu as un programme ouvert, par exemple internet, dans la bare des tache ta un rectangle avec le logo d'ineternet et marqué "Forum des dévelop...", ben la ya la meme chose qui s'affiche sof que c'est un logo bizare et qu'il n'y a aucun titre ...

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Points : 49
    Points
    49
    Par défaut
    Voila j'ai mis l'impression d'écran en piéce jointe, les "truc" c'est ce que j'ai entourer en rouge
    Images attachées Images attachées  

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    ah... bizarre, j'ai jamais vu ça
    et ça le fait pas quand tu affiche le menu avec le clic droit ?

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Bon... en fait j'ai vérifié, ça le fait aussi chez moi
    J'ai regardé avec Reflector le code de NotifyIcon, il y a une méthode ShowContextMenu qui serait parfaite... mais elle est privée
    J'ai regardé ce qu'elle fait pour essayer de faire la même chose, mais elle appelle des membres internal de ContextMenuStrip.
    Bref, le seul moyen que je vois c'est de bidouiller avec la réflexion, comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim showContextMenu As MethodInfo = GetType(NotifyIcon).GetMethod("ShowContextMenu", BindingFlags.NonPublic Or BindingFlags.Instance)
    If showContextMenu <> Nothing Then
        showContextMenu.Invoke(notifyIcon1, New Object(0) {})
    End If

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Points : 49
    Points
    49
    Par défaut
    il me dis que méthodinfo n'est pas déclarer
    tu le sort d'ou?

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par fabienlege Voir le message
    il me dis que méthodinfo n'est pas déclarer
    tu le sort d'ou?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Imports System.Reflection
    Normalement Visual Studio te le propose quand tu cliques sur le smart tag

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Points : 49
    Points
    49
    Par défaut
    Operator '<>' is not defined for types 'System.Reflection.MethodInfo' and 'System.Reflection.MethodInfo'.

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    J'ai converti à partir de C# avec le convertisseur du site, mais il bug un peu on dirait... comme ça, ça devrait marcher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If showContextMenu IsNot Nothing Then

Discussions similaires

  1. context menu strip
    Par TaymouWan dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/05/2009, 16h34
  2. Supprimer des Items dans une ListBox.
    Par abouhossam dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 23/01/2009, 11h01
  3. Supprimer des items dans une drop down liste
    Par msahmi dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/04/2008, 10h59
  4. ajouter dynamiquement des items dans un popup menu
    Par Malone dans le forum Composants VCL
    Réponses: 7
    Dernier message: 23/08/2005, 16h08
  5. [système] Comment ajouter un item dans le context menu de Windows ?
    Par ddmicrolog dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 29/06/2005, 17h03

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