Obtenir le texte d'un ToolStripMenuItem créé dynamiquement [Résolu]

Messages postés
73
Date d'inscription
mardi 18 mars 2008
Dernière intervention
19 décembre 2010
- 16 juin 2010 à 18:11 - Dernière réponse :
Messages postés
73
Date d'inscription
mardi 18 mars 2008
Dernière intervention
19 décembre 2010
- 16 juin 2010 à 19:59
Bonjour,

Je m'explique, j'ai un contexmenustrip et j'ajoute dynamiquement des toolstripmenu à celui-ci. J'aimerais pouvoir récupérer les données de ces toolstrips.
Pour être plus clair, je vous décris la fonction. J'ai une datagridview et j'ai besoin de changer le contenu d'une cellule à partir des items d'un contextmenustrip.
Par exemple, en cliquant droit, j'ouvre mon contextmenu strip, je choisie le toolmenustrip "Envoyé" et je veux que ce texte se place dans ma cellule.

Private Sub ContextMenuStrip3_ItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles ContextMenuStrip3.ItemClicked
CType(sender, ToolStripMenuItem).Text --- Ne fonctionne pas car toolstripmenuitem n'est pas un membre de contextmenustrip3
End Sub

Je sais faire toutes la partie envoie et remplacement des données mais je n'arrive pas à récupérer le texte du toolstrip cliqué.

Merci de votre attention.

Médéric
Ergonome IHM
Interaction Homme Machine
HTML clipboard<![CDATA[
h1{ border: thin #FFFFFF; color: #339933; text-align: center;}h2{text-align: center; color: #000080}h3{text-align: center; color: #FF0000
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
- 16 juin 2010 à 18:28
3
Merci
bonsoir,
Il faut rajouter un Handler a ton MenuItem
        Dim tool As ToolStripMenuItem = New ToolStripMenuItem
        AddHandler tool.Click, AddressOf ToolClicked
        ContextMenuStrip1.Items.Add(tool)


puis la sub qui est appelée

    Private Sub ToolClicked(ByVal sender As Object, ByVal e As System.EventArgs)
'ton code qui réagit au clic
    End Sub

bonne soirée.

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Meilleure réponse
- 16 juin 2010 à 19:12
3
Merci
ah oui et pour récuperer le texte en question
Private Sub ToolClicked(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim tool As ToolStripMenuItem = DirectCast(sender, ToolStripMenuItem)
    Dim montexte As String = tool.Text
End Sub

pardon pour cet oubli.

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
73
Date d'inscription
mardi 18 mars 2008
Dernière intervention
19 décembre 2010
- 16 juin 2010 à 19:56
0
Merci
Merci pour ta réponse je viens de tester ton code dans mon application.
 
     For index = 0 To (ComboBox1.Items.Count - 1)
            'ContextMenuStrip3.Items.Add(ComboBox1.Items.Item(index))
            tool.Text = ComboBox1.Items.Item(index)
            AddHandler tool.Click, AddressOf ToolClicked
            ContextMenuStrip3.Items.Add(tool)
        Next

Mon probleme est que je ne retrouve pas mes items dans mon tool, je n'arrive pas a affecter une valeur à tool.


Médéric
Ergonome IHM
Interaction Homme Machine
HTML clipboard<![CDATA[
h1{ border: thin #FFFFFF; color: #339933; text-align: center;}h2{text-align: center; color: #000080}h3{text-align: center; color: #FF0000
Commenter la réponse de podolis
Messages postés
73
Date d'inscription
mardi 18 mars 2008
Dernière intervention
19 décembre 2010
- 16 juin 2010 à 19:59
0
Merci
Désolé je viens de me rendre compte de mon erreur, je devais placer
Dim tool As ToolStripMenuItem = New ToolStripMenuItem dans mon sub et pas dans le corps du programme. Cela fonctionne maintenant.
Merci à toi.


Médéric
Ergonome IHM
Interaction Homme Machine
HTML clipboard<![CDATA[
h1{ border: thin #FFFFFF; color: #339933; text-align: center;}h2{text-align: center; color: #000080}h3{text-align: center; color: #FF0000
Commenter la réponse de podolis

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.