VinyDev
Messages postés47Date d'inscriptionlundi 5 janvier 2004StatutMembreDernière intervention 2 septembre 2011
-
26 janv. 2007 à 22:20
VinyDev
Messages postés47Date d'inscriptionlundi 5 janvier 2004StatutMembreDernière intervention 2 septembre 2011
-
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.
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.
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)
[...]
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
Vous n’avez pas trouvé la réponse que vous recherchez ?