Obtenir le texte d'un ToolStripMenuItem créé dynamiquement

Résolu
podolis Messages postés 71 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 19 décembre 2010 - 16 juin 2010 à 18:11
podolis Messages postés 71 Date d'inscription mardi 18 mars 2008 Statut Membre 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

4 réponses

Utilisateur anonyme
16 juin 2010 à 18:28
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.
3
Utilisateur anonyme
16 juin 2010 à 19:12
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.
3
podolis Messages postés 71 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 19 décembre 2010 1
16 juin 2010 à 19:56
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
0
podolis Messages postés 71 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 19 décembre 2010 1
16 juin 2010 à 19:59
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
0
Rejoignez-nous