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

cs_JMO 1838 Messages postés jeudi 23 mai 2002Date d'inscription 1 avril 2018 Dernière intervention - 2 avril 2015 à 00:22 - Dernière réponse : cs_JMO 1838 Messages postés jeudi 23 mai 2002Date d'inscription 1 avril 2018 Dernière intervention
- 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 

3 réponses

Répondre au sujet
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 2 avril 2015 à 03:21
0
Utile
Salut

Pas compris
tu as
WithEvents ChoicePDP As ToolStripMenuItem
et

Dim ChoicePDP As ToolStripDropDownButton = New ToolStripDropDownButton
Commenter la réponse de cs_ShayW
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - Modifié par cs_ShayW le 2/04/2015 à 03:42
0
Utile
1
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 1838 Messages postés jeudi 23 mai 2002Date d'inscription 1 avril 2018 Dernière intervention - 2 avril 2015 à 08:56
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.