Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 2018
-
4 déc. 2016 à 22:03
Whismeril
Messages postés18288Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention23 mars 2023
-
15 avril 2018 à 12:41
Bonsoir,
J'ai un MenuStrip est je veux le remplir dynamiquement (Créer des items (ToolStripMenuItem))
je n'ai pas trouvé sur le net ce que je veux et j'avais la méthode pour créer et remplir un TabControl dynamiquement, ce n'été pas difficile d'utiliser cette méthode pour le MenuStrip, voici le code :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim TypesToolStripMenuItem As New ToolStripMenuItem() TypesToolStripMenuItem.Name = "Type1" TypesToolStripMenuItem.Text = "Type 1" TypesToolStripMenuItem.Font = New Font("Georgia", 12) MenuStrip1.Items.Add(TypesToolStripMenuItem) AddHandler TypesToolStripMenuItem.Click, AddressOf TypesToolStripMenuItem_Click End Sub Private Sub TypesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
j'arrive a créer un ToolStripMenuItem et lui attribuer une action qui va être exécuté si je clique sur lui
mais si je veux créer plusieurs (le nombre n'est pas définie), comment attribuer des actions à chaque item ?
merci pour vos réponses futures et bonne soirée
cs_Le Pivert
Messages postés7884Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention20 mars 2023137 4 déc. 2016 à 22:26
Bonjour,
Voici un exemple avec 1 button:
Public Class Form1
Dim monmenu As New MenuStrip
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'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"
itemOuvrir.Tag = "0"
'abonnement à l'événement click
AddHandler itemOuvrir.Click, AddressOf item_Click
menuitem.DropDownItems.Add(itemOuvrir)
'ajout d'un sous-élément
Dim itemEnregistrer As New ToolStripMenuItem
itemEnregistrer.Text = "Enregistrer"
itemEnregistrer.Tag = "1"
'abonnement à l'événement click
AddHandler itemEnregistrer.Click, AddressOf item_Click
menuitem.DropDownItems.Add(itemEnregistrer)
'ajout d'un autre sous-élément
Dim itemQuitter As New ToolStripMenuItem
itemQuitter.Text = "Quitter"
itemQuitter.Tag = "2"
'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)
CType(monmenu.Items(0), ToolStripMenuItem).DropDownItems(1).AllowDrop = True
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim c As ToolStripMenuItem
c = CType(CType(monmenu.Items(0), ToolStripMenuItem).DropDownItems.Add("Nouveau menu"), ToolStripMenuItem)
c.Name = "Nouveau menu"
For lcoount As Integer = 1 To 2
Dim innerItem As New ToolStripMenuItem()
innerItem.Text = "Monmenu" & lcoount
innerItem.Name = lcoount.ToString
'abonnement à l'événement click
AddHandler innerItem.Click, AddressOf item_Click
c.DropDownItems.Add(innerItem)
Next
' CType(monmenu.Items(0), ToolStripMenuItem).DropDownItems(1).Visible = False
End Sub
End Class
a toi de l'adapter suivant tes besoins
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 20182 4 déc. 2016 à 22:55
Bonsoir cs_Le Pivert,
Merci c'est ce que je voulais et en plus c'est très bien expliqué, sérieux tu m'enlève une épine du pied.
si je veux qu'il affiche le contenue d'une ListBox par exemple (je précise que le nombre des items de la ListBox est le même que celui du Menustrip
et aussi je veux par exemple si je supprimer un item de la ListBox le ToolStripMenuItem lié a ce item (item de la ListBox ) sera aussi supprimer
cs_Le Pivert
Messages postés7884Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention20 mars 2023137
>
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 2018 5 déc. 2016 à 08:48
voir ce post pour supprimer un contrôle crée dynamiquement:
Dim menustripmain As New MenuStrip
Dim menustripmain_itemmenu As New ToolStripMenuItem
Dim menustripmain_itemviewappweb As ToolStripMenuItem
' Création dynamique du menu et de son arborescence
menustripmain_itemmenu.Text = "Menu"
menustripmain_itemmenu.Font = New System.Drawing.Font("Segoe UI", 10.0!)
' Création du menu "Consultation Web Consignes"
menustripmain_itemviewappweb = CType(CType(menustripmain_itemmenu, ToolStripMenuItem).DropDownItems.Add("Consultation Web Consignes"), ToolStripMenuItem)
menustripmain_itemviewappweb.Name = "ViewWEB"
menustripmain_itemviewappweb.Text = "Consultation Web Consignes"
AddHandler menustripmain_itemviewappweb.Click, AddressOf ToolStripSplitButtonOpenLinkWeb_ButtonClick
' Ajout des éléments au menustrip Menu
menustripmain.Items.Add(menustripmain_itemmenu)
' Ajout du menustripmain au formulaire
Me.Controls.Add(menustripmain)
'#####################################################################################
'# ToolStripSplitButtonOpenLinkWeb pour ouvrir le lien Web des Consignes
'#####################################################################################
Private Sub ToolStripSplitButtonOpenLinkWeb_ButtonClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles toolStripSplitButtonOpenLinkWeb.ButtonClick
Process.Start("http://......")
End Sub
jean-marc
Désolé cs_Le Pivert (bonsoir) je n'avais pas vu ta proposition.
Bonsoir cs_JMO,
Merci de m'avoir répondu
je ne sais pas si j'ai bien compris mais je crois que le problème de ce code est que les deux ToolStripMenuItem ont la même action, non?
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201826
>
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 2018 Modifié par cs_JMO le 4/12/2016 à 23:14
Bonsoir Karin,
Non, j'ai copié/collé des bouts d'une appli où je créé un menu, puis des items et subtitems.
Le code proposé par Le Pivert est plus explicite que le mien !
' Ajout d'un élément au menustrip menustripmain_itemreload.Name = "Reload" menustripmain_itemreload.Text = "Relancer" menustripmain_itemreload.Font = New System.Drawing.Font("Segoe UI", 10.0!) menustripmain.Items.Add(menustripmain_itemreload) ' Abonnement à l'événement click AddHandler menustripmain_itemreload.Click, AddressOf MenuMain_Item_Click
' Ajout d'un élément au menustrip menustripmain_itemexit.Name = "Quitter" menustripmain_itemexit.Text = "Quitter" menustripmain_itemexit.Font = New System.Drawing.Font("Segoe UI", 10.0!) menustripmain.Items.Add(menustripmain_itemexit) ' Abonnement à l'événement click AddHandler menustripmain_itemexit.Click, AddressOf MenuMain_Item_Click
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 20182
>
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018 4 déc. 2016 à 23:48
Bonsoir cs_JMO,
l'essentiel pour moi est que tu à essayer de m'aider, ça me fait plaisir merci
vb95
Messages postés3406Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention20 mars 2023165 4 déc. 2016 à 22:51
bonsoir Karin.code
Suffit de leur donner à chacun un nom différent
De plus attention
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim TypesToolStripMenuItem As New ToolStripMenuItem() ' point 1 TypesToolStripMenuItem.Name = "Type1" TypesToolStripMenuItem.Text = "Type 1" TypesToolStripMenuItem.Font = New Font("Georgia", 12) MenuStrip1.Items.Add(TypesToolStripMenuItem) AddHandler TypesToolStripMenuItem.Click, AddressOf TypesToolStripMenuItem_Click ' point 2 End Sub
1) Tu appelles ta commande de menu avec un nom presque similaire au type menu : risque de se perdre les pinceaux ( j'ai failli me tromper d'ailleurs) . Là c'est toi qui donne le nom : autant lui donner un nom en français c'est plus parlant ( regarde mon exemple)
2) Le "AddHandler" est incorrect
- le premier paramètre est l'action sur le contrôle
- le second paramètre est une simple Sub que le programme va exécuter une fois l'évènement déclenché
tu devrais faire
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim ElementMenu As New ToolStripMenuItem() ' nouveau élément menu ElementMenu.Name = "Enregistrer" ElementMenu.Text = "Enregistrer" ElementMenu.Font = New Font("Georgia", 12) MenuStrip1.Items.Add(ElementMenu) AddHandler Enregistrer.Click, AddressOf Enregistrement ' adresse Sub à lier à cet évènement
Dim ElementMenu As New ToolStripMenuItem() ' nouveau élément menu ElementMenu.Name = "Fermer" ElementMenu.Text = "Fermer" ElementMenu.Font = New Font("Georgia", 12) MenuStrip1.Items.Add(ElementMenu) AddHandler Fermer.Click, AddressOf Fermeture ' adresse Sub à lier à cet évènement End Sub
Private Sub Enregistrement() ' le code d'enregistrement End Sub
Private Sub Fermeture() ' le code pour fermer End Sub
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 20182 4 déc. 2016 à 23:06
Bonsoir vb95
Merci de m'avoir répondu
Je crois que tu m'a mal compris, je ne connais pas le nombre de ToolStripMenuItem que je vais créer (Par exemple Type 1, Type 2, Type 3, Type 4 ...etc)
avec ton code je peux créer que deux, non?
vb95
Messages postés3406Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention20 mars 2023165
>
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 2018 4 déc. 2016 à 23:15
bonsoir Karin.code
Là j'en ai mis deux
Mais libre à toi d'en mettre 20 ou 30 ou 200 ( mais alors là le clavier va chauffer)
Ou alors passer par un tableau contenant les caractéristiques de chaque élément du menu et avec une boucle créer tous les menus d'un coup
En plus que vient faire la listbox dont tu parles ? Surtout qu'elle aura toujours le même nombre d'éléments que ton menu
Et si c'était la listbox qui servait de "menu" ?
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 20182
>
vb95
Messages postés3406Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention20 mars 2023 4 déc. 2016 à 23:45
Bonsoir vb95
Désolé si je n'ai pas expliquer mon projet
en faite je fais des calculs et si le résultat égale a une certaine valeur, par exemple
si :
Résultat égale 0,5 -> état : Faible
Résultat égale 1,5 -> état : Moyenne ( pas encore prés)
Résultat égale 2,5 -> état : Bien (l'échantillon acceptable)
Résultat égale 5,5 -> état : Très bien (C'est le bon échantillon )
...etc
si je lance le premier calcul et le résultat est égal à 0,5
le string (état : Faible) sera enregistrer dans la ListBox, en même temps un ToolStripMenuItem sera crée dans le MenuStrip avec un nom "Type 1", si je clique dessus un message s'affiche avec le contenu de l'Items(0) de la ListBox
si je lance le premier calcul et le résultat est égal à 2,5
le string (état : Bien (l'échantillon acceptable)) sera enregistrer dans la ListBox, en même temps un ToolStripMenuItem sera crée dans le MenuStrip avec un nom "Type 2", si je clique dessus un message s'affiche avec le contenu de l'Items(1) de la ListBox
ainsi de suite
j'utilise la ListBox pour sauvegarder les résultats, je ne peut pas faire MessageBox.Show(Résultat) car le résultat change a chaque calcul
vb95
Messages postés3406Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention20 mars 2023165 Modifié par vb95 le 5/12/2016 à 00:23
Salut Karin.code
Si je comprends bien tu fais X calculs ( cela peut être 20 comme 200)
A chaque calcul correspond
- un numéro ( Calcul n° 1, Calcul n°2, etc ......
- un résultat qui est une valeur numérique
- une appréciation qui est une chaine de caractères
somme toute un tableau comme ceci
chaque fois que tu fais un calcul on ajoute une ligne
Cela me paraît plus simple que tes menus et listbox
tout en sachant que sur une ligne tu peux afficher d'autres informations ou même effacer la ligne
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 20182 5 déc. 2016 à 08:32
Salut vb95,
merci pour la proposition
en faite j'ai déjà pensé a ce choix, c'est vrais que c'est plus facile et plus pratique d'utiliser un tableau, mais pour ce projet j'ai vraiment envie d'utiliser un MenuStrip.
vb95
Messages postés3406Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention20 mars 2023165
>
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 2018 5 déc. 2016 à 12:19
Soit
Mais ce n'est nullement la finalité d'un MenuStrip
Vous n’avez pas trouvé la réponse que vous recherchez ?
Bonjour
j'ai fait quelque recherche ce matin et la 1er solution que j'ai trouvé (je l'ai intégré au code de cs_Le Pivert) est :
Public Class Form1 Dim monmenu As New MenuStrip Dim i As Integer = 0 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '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" itemOuvrir.Tag = "0" 'abonnement à l'événement click AddHandler itemOuvrir.Click, AddressOf item_Click menuitem.DropDownItems.Add(itemOuvrir) 'ajout d'un sous-élément Dim itemEnregistrer As New ToolStripMenuItem itemEnregistrer.Text = "Enregistrer" itemEnregistrer.Tag = "1" 'abonnement à l'événement click AddHandler itemEnregistrer.Click, AddressOf item_Click menuitem.DropDownItems.Add(itemEnregistrer) 'ajout d'un autre sous-élément Dim itemQuitter As New ToolStripMenuItem itemQuitter.Text = "Quitter" itemQuitter.Tag = "2" '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) ListBox1.SelectedIndex = MenuStrip1.Items.IndexOf(DirectCast(sender, ToolStripItem)) MessageBox.Show(ListBox1.SelectedItem) End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim element As New ToolStripMenuItem() element.Name = "element" & i element.Text = "element " & i AddHandler element.Click, AddressOf item_Click monmenu.Items.Add(element) i = i + 1 End Sub End Class
quand je clique sur le 1er élément ça affiche l'item (1) de la ListBox
quand je clique sur le 2eme élément ça affiche l'item (2) de la ListBox
ainsi de suite
mais le problème est que :
quand je clique sur un sous élément rien ne s'affiche
la 2eme solution que j'ai trouvé est :
Public Class Form1 Dim monmenu As New MenuStrip Dim i As Integer = 0 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '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" itemOuvrir.Tag = "0" 'abonnement à l'événement click AddHandler itemOuvrir.Click, AddressOf item_Click menuitem.DropDownItems.Add(itemOuvrir) 'ajout d'un sous-élément Dim itemEnregistrer As New ToolStripMenuItem itemEnregistrer.Text = "Enregistrer" itemEnregistrer.Tag = "1" 'abonnement à l'événement click AddHandler itemEnregistrer.Click, AddressOf item_Click menuitem.DropDownItems.Add(itemEnregistrer) 'ajout d'un autre sous-élément Dim itemQuitter As New ToolStripMenuItem itemQuitter.Text = "Quitter" itemQuitter.Tag = "2" '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) Me.Controls.Add(monmenu) End Sub Private Sub item_Click(ByVal sender As Object, ByVal e As EventArgs) Dim item As ToolStripItem = sender ListBox1.SelectedIndex = item.Owner.Items.IndexOf(item) MessageBox.Show(ListBox1.SelectedItem) End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim element As New ToolStripMenuItem() element.Name = "element" & i element.Text = "element " & i AddHandler element.Click, AddressOf item_Click monmenu.Items.Add(element) i = i + 1 End Sub End Class
cette méthode fonction pour les éléments et sous éléments
supposant qu'il y a 5 éléments et dans le 3eme élément il y a 4 sous éléments
quand je clique sur le 1er élément ça affiche l'item (1) de la ListBox
quand je clique sur le 2eme élément ça affiche 'item (2) de la ListBox
quand je clique le 1er sous élément du 3eme élément ça affiche l'item (1) de la ListBox
quand je clique le 2eme sous élément du 3eme élément ça affiche l'item (2) de la ListBox
ainsi de suite
ce n'est pas ce que je veux, moi je veux que ça s'affiche par ordre de création c-à-dire :
le 1er élément du MenuStrips affiche l'item (1) de la ListBox
le 2eme élément du MenuStrips affiche l'item (2) de la ListBox
le 1er sous élément du 3eme élément du MenuStrips affiche l'item (3) de la ListBox
le 2eme sous élément du 3eme élément du MenuStrips affiche l'item (4) de la ListBox
le 3eme sous élément du 3eme élément du MenuStrips affiche l'item (5) de la ListBox
le 4eme sous élément du 3eme élément du MenuStrips affiche l'item (6) de la ListBox
le 4eme élément du MenuStrips affiche l'item (4) de la ListBox
le 5eme élément du MenuStrips affiche l'item (5) de la ListBox
je sais que je demande beaucoup, mais je fais des recherches de mon côté, je n'attend pas que la solution vient par magie
Je vais continuer à rechercher d'autre solution
merci pour votre aide
Private Sub item_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim index As Integer
index = monmenu.Items.IndexOf(DirectCast(sender, ToolStripItem))
ListBox1.SelectedIndex = index - 1
MessageBox.Show(CStr(ListBox1.SelectedItem)) 'nom
MessageBox.Show(CStr(ListBox1.SelectedIndex)) 'index
End Sub
Private Sub Button1_Click_1(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim element As New ToolStripMenuItem()
element.Name = "element" & i
element.Text = "element " & i
AddHandler element.Click, AddressOf item_Click
monmenu.Items.Add(element)
ListBox1.Items.Add(element.Text)
i = i + 1
End Sub
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 20182 5 déc. 2016 à 12:27
Salut cs_Le Pivert,
C'est déjà un problème réglé Merci
désolé je n'ai pas expliquer pourquoi je veux les sous éléments
Comme le montre l'image si je crée beaucoup d'éléments certain d'entre eux ne s'affiche pas car la taille du MenuStrip est limité
je voulais s'avoir si c'est possiblede faire quelque chose comme ça
si les élements ne peuvent plus être affiché alors il seront créé dans un sous menu ou quelque chose comme ça
cet aspect là est présent dans beaucoup de logiciel (par exemple Microsoft, des navigateur , même dans visual basic express 2010)
vb95
Messages postés3406Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention20 mars 2023165 Modifié par vb95 le 5/12/2016 à 14:18
bonsoir Karin.code
Si cela s'appelle un menu strip c'est comma au restaurant
Dans le menu tu as les entrées, les plats de résistances, les fromages, les boissons, etc .....
Ensuite dans un tableau tu présentes les entrées par exemple en cliquant sur "Entrées"
toi là tu mets carrément toutes les entrées dans le Menu puis tous les fromages dans le menu : je plains ton client pour lire ta carte lol
De plus dans un menu informatique chaque élément a une fonction bien distincte : Ouvrir un fichier, enregistrer un fichier, fermer l'application
Chaque élément de ce menu est unique ( à part quelques exceptions)
cs_Le Pivert
Messages postés7884Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention20 mars 2023137
>
vb95
Messages postés3406Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention20 mars 2023 5 déc. 2016 à 15:18
Et pour compléter ce qu'a dit VB95 que je salue. Le but de la programmation c'est de faire un programme le plus simple possible dans la mesure du cahier des charges. Comme le dit si souvent ucfoutu, cela commence avec un papier et un crayon.
Pourquoi faire compliqué quand on peut faire simple!!!
vb95
Messages postés3406Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention20 mars 2023165
>
cs_Le Pivert
Messages postés7884Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention20 mars 2023 Modifié par vb95 le 5/12/2016 à 17:07
Bonjour cs_Le Pivert
Je plussoie ton complément
Sans phase d'analyse on va droit dans le mur !
Salutations à toi
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 20182
>
vb95
Messages postés3406Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention20 mars 2023 Modifié par Karin.code le 5/12/2016 à 19:23
vb95
Messages postés3406Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention20 mars 2023165
>
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 2018 5 déc. 2016 à 21:08
Salut Karin.code
tu as écrit : "je sais ça parait insensé, mais j'aurais bien aimé utiliser un MenuStrip comme je l'ai mentionné plus haut "
Le problème c'est qu'un MenuStrip n'est pas fait pour cela !
C'est un peu comme si tu voulais enfoncer un clou avec une aiguille à tricoter !
si tu penses que ce post peut être fermé fais-le !
Ouvre un nouveau sujet de discussion si tu as une difficulté avec le passage de ton projet avec une listview
Bonjour cs_Le Pivert, j'ai un problème de compréhension fondamental au sujet des objets. Le code de la ligne
c = CType(CType(monmenu.Items(0), ToolStripMenuItem).DropDownItems.Add("Nouveau menu"), ToolStripMenuItem)
contient une conversion de monmenu.Items(0) à ToolStripMenuItem.
Avec un breakpoint immédiatement après la ligne ci-dessus j'obtiens dans l'Immediate Window:
Du coup, si tu places un ToolStripMenuItem, il est accepté car, un ToolStripMenuItem est un ToolStripItem, mais un ToolStripItem n'est pas un ToolStripMenuItem.
Donc quand tu prends l'Item 0, c'est un ToolStripItem, pour accéder aux propriétés spécifiques du ToolStripMenuItem, il faut le caster, c'est le rôle de l'intrusion CType.
Si tu ne comprends pas bien, cherche des cours sur l'héritage et le polymorphisme.
J'en ai écrit un là
4 déc. 2016 à 22:55
Merci c'est ce que je voulais et en plus c'est très bien expliqué, sérieux tu m'enlève une épine du pied.
si je veux qu'il affiche le contenue d'une ListBox par exemple (je précise que le nombre des items de la ListBox est le même que celui du Menustrip
et aussi je veux par exemple si je supprimer un item de la ListBox le ToolStripMenuItem lié a ce item (item de la ListBox ) sera aussi supprimer
5 déc. 2016 à 08:48
http://codes-sources.commentcamarche.net/forum/affich-10056632-groupes-de-controles-indexes-sous-vb-net?page=2#28
5 déc. 2016 à 10:01
Merci
je vais jeter un œil au lien que tu m'a donné merci