ToolStripMenuItem : comment récupérer l'item sélectionné [Résolu]

Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
- - Dernière réponse : cs_JMO
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
- 2 avril 2015 à 08:56
Bonsoir le forum,

Nouveau en .Net (VB 2010 Express), j'essaie de créer dynamiquement un ToolStripMenuItem et de récupérer l'item sélectionné.

Public Class Form3
Inherits System.Windows.Forms.Form
WithEvents ChoicePDP As ToolStripMenuItem

Public Function Main()
Application.Run(New Form3)
End Function

Public Sub New()
Dim ListPDP = New ToolStrip
Dim ChoicePDP As ToolStripDropDownButton = New ToolStripDropDownButton
ChoicePDP.Text = "Génération Plan de Production"
ChoicePDP.ForeColor = Color.Red
ListPDP.Items.Add(ChoicePDP)

For i As Integer = 0 To 5
ChoicePDP.DropDownItems.Add(New ToolStripMenuItem(i))
Next
Controls.Add(ListPDP)
AddHandler ChoicePDP.Click, AddressOf WhichMenuItem_Click
End Sub

Private Sub WhichMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ChoicePDP.DropDownItemClicked
Dim MenuItem As ToolStripMenuItem = DirectCast(sender, ToolStripMenuItem)
MessageBox.Show(MenuItem.Name)
End Sub
End Class


Au clic sur Choice.PDP, j'obtiens l'erreur sur le DirectCast :
L'exception System.InvalidCastException n'a pas été gérée
Message=Impossible d'effectuer un cast d'un objet de type 'System.Windows.Forms.ToolStripDropDownButton' en type 'System.Windows.Forms.ToolStripMenuItem'.

Quelle est mon erreur ?

Merci de vos suggestions,
jean-marc
Afficher la suite 

Votre réponse

2 réponses

Messages postés
3244
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
13 décembre 2018
0
Merci
Salut

Pas compris
tu as
WithEvents ChoicePDP As ToolStripMenuItem
et

Dim ChoicePDP As ToolStripDropDownButton = New ToolStripDropDownButton
Commenter la réponse de cs_ShayW
Messages postés
3244
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
13 décembre 2018
0
Merci
peut etre ainsi

Public Class form3
Inherits System.Windows.Forms.Form
WithEvents ChoicePDP As New ToolStripMenuItem

Private ListPDP As New ToolStrip
Public Function Main()
Application.Run(New Form3)
End Function
Public Sub New()

'Dim ChoicePDP As ToolStripDropDownButton = New ToolStripDropDownButton
ChoicePDP.Text = "Génération Plan de Production"
ChoicePDP.ForeColor = Color.Red
ListPDP.Items.Add(ChoicePDP)
Dim menu As ToolStripMenuItem
For i As Integer = 0 To 5
menu = New ToolStripMenuItem
menu.Name = "menuname" & i.ToString
menu.Text = "menu" & i.ToString
ChoicePDP.DropDownItems.Add(menu)
AddHandler menu.Click, AddressOf WhichMenuItem_Click
Next
Controls.Add(ListPDP)
End Sub

Private Sub WhichMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ChoicePDP.DropDownItemClicked

MessageBox.Show(DirectCast(sender, ToolStripMenuItem).Name)
End Sub
End Class
cs_JMO
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
-
Bonjour le Forum,

Bonjour ShayW,
Merci d'avoir corrigé mes erreurs de débutant.
Le messageBox me retourne le bon item cliqué.

@+.
jean-marc
Commenter la réponse de cs_ShayW

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.