Menu dynamique par listview (déprime total)

Résolu
Signaler
Messages postés
259
Date d'inscription
dimanche 14 juillet 2002
Statut
Membre
Dernière intervention
17 août 2012
-
Messages postés
259
Date d'inscription
dimanche 14 juillet 2002
Statut
Membre
Dernière intervention
17 août 2012
-
    Bonjour, voila 6 heures consécutive que je travail sur ce problème. Je n'arrive pas d'aucune facons à faire un menu a partir d'un fichier listview. Si j'arrivais seulement è faire un simple menu avec des sous items par programmation mon probleme serait réglé. Merci pour votre aide..... par pitié....

Private Sub OpenFile(ByVal sender As Object, ByVal e As EventArgs) Handles OpenToolStripMenuItem.Click, OpenToolStripButton.Click
        Dim OpenFileDialog As New OpenFileDialog
        OpenFileDialog.InitialDirectory = Application.StartupPath
        OpenFileDialog.Filter = "Fichiers TreeView (*.trv)|*.trv"
        If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
            Dim FileName As String = OpenFileDialog.FileName

            ChargeTreeView(TreeViewProjet, Application.StartupPath & "\aaa.trv")

            For Each nodes As TreeNode In TreeViewProjet.Nodes

                Dim thisnode As ToolStripItem
                thisnode = ToolStripMenuItemTache.DropDownItems.Add(nodes.Text, imgImageList1.Images(0), AddressOf subCatchMenu)

                For Each subnodes As TreeNode In TreeViewProjet.Nodes(nodes.Text).Nodes
                    'Error    1    'DropDownItems' is not a member of 'System.Windows.Forms.ToolStripItem'.
                    thisnode.DropDownItems.Add(nodes.Text, imgImageList1.Images(0), AddressOf subCatchMenu)
                Next

            Next

            'AddHandler menuitem.Click, AddressOf xxx
            'ToolStripMenuItemTache.

        End If
    End Sub

8 réponses

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Salut,

thisnode doit être un ToolStripMenuItem.
Le ToolStripMenuItem hérite du ToolStripItem, donc conversion possible.



__________
Kenji
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Il faut toujours travailler avec Option Strict, la tu pourras plus utiliser le type Object directement.

La fonction Add te renvois un ToolStripItem que tu dois convertir en ToolStripMenuItem
Utilise un CType ou un TryCast pour faire la conversion.





__________
Kenji
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
Declare le as object et puis basta ! lol

;-)

@+

E.B.
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Ha ben non alors. La il va plus rien vouloir du tout.
Il faut que les objets soient typés correctement. C'est plus comme en vb6.
Si tu déclare en Object, il faudra faire un cast pour avoir accès à ces propriétés et méthodes.





__________
Kenji
Messages postés
259
Date d'inscription
dimanche 14 juillet 2002
Statut
Membre
Dernière intervention
17 août 2012

[auteurdetail.aspx?ID=231472 Charles Racaud]


En fait on peu accesder au méthode sans cast meme si sé déclrer objet si on connais leur nom au part coeur, cependant on risque gros d'Avoir une erreur "Late bound résolution". Corigier moi si je me tromep bien sur.
Messages postés
259
Date d'inscription
dimanche 14 juillet 2002
Statut
Membre
Dernière intervention
17 août 2012

Vue que j'y pense, je tient a préciser que je suis poru le typage corecte des variables...... objet est presque inaceptable sauf en cas ou une petite passe peut accelerer grandement la rapidité de certaine boucle ou condition par exemple....
Messages postés
259
Date d'inscription
dimanche 14 juillet 2002
Statut
Membre
Dernière intervention
17 août 2012

E supposant la théorie de [auteurdetail.aspx?ID=231472 Charles Racaud]

Dim thisnode As ToolStripMenuItem
'Warning    1    Implicit conversion from 'System.Windows.Forms.ToolStripItem' to 'System.Windows.Forms.ToolStripMenuItem'. 

                thisnode = ToolStripMenuItemTache.DropDownItems.Add(nodes.Text, imgImageList1.Images(0), AddressOf subCatchMenu)

j'ai en orreur les conversion implicite....
Messages postés
259
Date d'inscription
dimanche 14 juillet 2002
Statut
Membre
Dernière intervention
17 août 2012

TryCast? moi j'utilise directcast en général. Mais j'aurais bien aimé quil y ait de quoi de plus performant encore lolol , pas grave