Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 'création d'un nouveau menustrip Dim monmenu As New MenuStrip 'ajout d'un élément Dim menuitem As New ToolStripMenuItem menuitem.Text = "Fichier" 'ajout d'un sous-élément Dim itemOuvrir As New ToolStripMenuItem itemOuvrir.Text = "Ouvrir" 'abonnement à l'événement click AddHandler itemOuvrir.Click, AddressOf item_Click menuitem.DropDownItems.Add(itemOuvrir) 'ajout d'un autre sous-élément Dim itemQuitter As New ToolStripMenuItem itemQuitter.Text = "Quitter" 'abonnement à l'événement click AddHandler itemQuitter.Click, AddressOf item_Click menuitem.DropDownItems.Add(itemQuitter) 'ajout de l'élément au menustrip monmenu.Items.Add(menuitem) 'ajout du menustrip au formulaire Me.Controls.Add(monmenu) End Sub Private Sub item_Click(ByVal sender As Object, ByVal e As EventArgs) Dim monitem As ToolStripItem = DirectCast(sender, ToolStripItem) MessageBox.Show(monitem.Text) End Sub End Class
12 sept. 2015 à 18:32
La propriété Index n'a donc plus d'équivalent ?
Cette méthode permet d'ajouter des éléments et des sous-éléments au menu par code. Mais je cherche à avoir un tableau dynamique associé à un élément, comme par exemple Ouvrir() que j'alimente pas code selon le contexte (Ouvrir(1) = "Ouvrir fichier" ; Ouvrir(2) = "Ouvrir dossier" ; et plus si le contexte s'y prête).
La propriété Index = 0 permettait de le faire très simplement avec le code suivant pour le menu dynamique mnuPS().
'Chargement d'un nouvel item de menu.
Load mnuPS(NbPS - 1)
mnuPS(NbPS - 1).Caption = NomItem(NbPS - 1)
mnuPS(NbPS - 1).Checked = False
Est-ce encore possible ?
Merci d'avance pour votre réponse
Thomas