Help : Recherche d'un noeud d'un treeview en vb.net [Résolu]

VinyDev 47 Messages postés lundi 5 janvier 2004Date d'inscription 2 septembre 2011 Dernière intervention - 26 janv. 2007 à 22:20 - Dernière réponse : VinyDev 47 Messages postés lundi 5 janvier 2004Date d'inscription 2 septembre 2011 Dernière intervention
- 28 janv. 2007 à 13:54
Je n'y comprends plus rien...
Je souhaite rechercher trouver un noeud dans un treeview pour faire un "expand" de celui-ci ; et tout ça via le code

J'ai donc un treeview dans lequel j'ai plusieurs niveaux de noeuds
Ensuite, lorsque je doubleclic sur une ligne d'un listview, je fait une recherche sur le nom du noeud recherché, comme ceci

    Private Sub lst_recherche_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles lst_recherche.DoubleClick
        'Nous allons sur le noeud sélectionné
        Dim f As New frm_Equipements
        Dim NoeudRecherche As String = Me.lst_recherche.Items(Me.lst_recherche.FocusedItem.Index).SubItems(1).Text
        Dim tn As TreeNode = f.RechercheNoeud(f.trw_Equipements.Nodes, NoeudRecherche)
        If Not (tn Is Nothing) Then
            'traitement de tn

        Else
            'traiter que le noeud demandé n'existe pas
            MsgBox("L'élément :" & vbCr & NoeudRecherche & vbCr & vbCr & "est introuvable ou inexistant !", MsgBoxStyle.Information)
        End If
    End Sub

    Public Function RechercheNoeud(ByVal nodes As TreeNodeCollection, ByVal NomNoeud As String) As TreeNode
        Dim n As TreeNode
        For Each n In nodes
            If n.Text.Equals(NomNoeud) Then : Exit For
            ElseIf (n.Nodes.Count > 0) Then
                n = Me.RechercheNoeud(n.Nodes, NomNoeud)
                If Not (n Is Nothing) AndAlso (n.Text.Equals(NomNoeud)) Then Exit For
            End If
        Next
        If Not (n Is Nothing) AndAlso (n.Text.Equals(NomNoeud)) Then Return n Else Return Nothing
    End Function

Or lorsque je lance la recherche, dans le sub RechercheNoeud, j'ai 0 en nombre de Nodes ????
Quelqu'un a-t-il la solution, car j'avoue que je suis bloqué sur ce point.

Merci d'avance pour votre aide

[8)] [font=Comic Sans MS]VinyDevSans MS
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 26 janv. 2007 à 22:33
3
Merci
Bonsoir,

Normal, ton TreeView est Vide.
Tu déclare une nouvelle Form "frm_Equipements", donc la TreeView qu'lle contient est initialement vide.




__________
Kenji

Merci Charles Racaud 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de Charles Racaud
Meilleure réponse
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 26 janv. 2007 à 22:46
3
Merci
frm_Equipements, c'est ta feuille principale ?
En tout cas, si ce n'est pas le cas, il ne faut pas la redéclaré chaque fois. Il faut la déclaré en global.






__________
Kenji

Merci Charles Racaud 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de Charles Racaud
Meilleure réponse
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 26 janv. 2007 à 23:03
3
Merci
Si c'est ta feuille principale, alors pas la peine de la déclarer

[...]
'Nous allons sur le noeud sélectionné
<strike>Dim f As New frm_Equipements</strike>
Dim NoeudRecherche As String = Me.lst_recherche.Items(Me.lst_recherche.FocusedItem.Index).SubItems(1).Text
Dim tn As TreeNode = Me.RechercheNoeud(Me.trw_Equipements.Nodes, NoeudRecherche)
[...]





__________
Kenji

Merci Charles Racaud 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de Charles Racaud
Meilleure réponse
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 26 janv. 2007 à 23:17
3
Merci
Ok,
Ben tu peut définir une variable dans ta "Form2" qui représenta ta feuille principale.
Pour plus de faciliter, tu peut faire l'affectation directment dans la sub new

Private ParentForm As Parent_frm_Equipements



Public Sub New(ByVal Parent As Parent_frm_Equipements)
  ' This call is required by the Windows Form Designer.
  InitializeComponent()



  ' Add any initialization after the InitializeComponent() call.
  ParentForm = Parent
End Sub



Private Sub lst_recherche_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles lst_recherche.DoubleClick
  'Nous allons sur le noeud sélectionné
  Dim NoeudRecherche As String = Me.lst_recherche.Items(Me.lst_recherche.FocusedItem.Index).SubItems(1).Text
  Dim tn As TreeNode = ParentForm.RechercheNoeud(ParentForm.trw_Equipements.Nodes, NoeudRecherche)
  [...]

Et bien sur quand tu initialise ta "Form2" depuis ta feuille principale, tu la passe elle même en paramétre
Dim F2 As New Form2(Me)




__________
Kenji

Merci Charles Racaud 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de Charles Racaud
Meilleure réponse
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 26 janv. 2007 à 23:23
3
Merci
Oulà, j'ai mis un "
Parent_" en trop (vive le copier-coller trop rapide)
Lire "frm_Equipements" à la place de "Parent_frm_Equipements"






__________
Kenji

Merci Charles Racaud 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de Charles Racaud
VinyDev 47 Messages postés lundi 5 janvier 2004Date d'inscription 2 septembre 2011 Dernière intervention - 26 janv. 2007 à 22:36
0
Merci
Ah ok
Mais alors comment je fait "appel" au treeview de ma form "frm_Equipements" dans mon module sans vider

[8)] [font=Comic Sans MS]VinyDevSans MS
Commenter la réponse de VinyDev
VinyDev 47 Messages postés lundi 5 janvier 2004Date d'inscription 2 septembre 2011 Dernière intervention - 26 janv. 2007 à 22:36
0
Merci
Ah ok
Mais alors comment je fait "appel" au treeview de ma form "frm_Equipements" dans mon module sans vider

[8)] [font=Comic Sans MS]VinyDevSans MS
Commenter la réponse de VinyDev
VinyDev 47 Messages postés lundi 5 janvier 2004Date d'inscription 2 septembre 2011 Dernière intervention - 26 janv. 2007 à 22:58
0
Merci
C'est la feuille principale oui
Comment dois-je faire pour la déclarer en global et où dois-je le faire

Merci pour ton aide

[8)] [font=Comic Sans MS]VinyDevSans MS
Commenter la réponse de VinyDev
VinyDev 47 Messages postés lundi 5 janvier 2004Date d'inscription 2 septembre 2011 Dernière intervention - 26 janv. 2007 à 23:06
0
Merci
C'est ma feuille principale oui, mais ce code est écrit sur une autre form...

[8)] [font=Comic Sans MS]VinyDevSans MS
Commenter la réponse de VinyDev
VinyDev 47 Messages postés lundi 5 janvier 2004Date d'inscription 2 septembre 2011 Dernière intervention - 27 janv. 2007 à 00:25
0
Merci
Merci beaucoup pour ton aide : àa marche !!...
Reste à te demander comment je peux mettre en "HotTracking" ou surbrillance le noeud ainsi trouvé ?

Merci

[8)] [font=Comic Sans MS]VinyDevSans MS
Commenter la réponse de VinyDev
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 27 janv. 2007 à 11:44
0
Merci
Tu place la node trouvé dans la propriété SelectedNode :
ParentForm.trw_Equipements.SelectedNode = tn






__________
Kenji
Commenter la réponse de Charles Racaud
VinyDev 47 Messages postés lundi 5 janvier 2004Date d'inscription 2 septembre 2011 Dernière intervention - 28 janv. 2007 à 13:54
0
Merci
Je te remerci pour tous ces conseilles
A bientôt




[8)] [font=Comic Sans MS]VinyDevSans MS
Commenter la réponse de VinyDev

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.