Test d'existance de Node en Vb .Net 2005

Résolu
LTourist Messages postés 24 Date d'inscription jeudi 22 décembre 2005 Statut Membre Dernière intervention 8 février 2009 - 23 mars 2006 à 21:43
LTourist Messages postés 24 Date d'inscription jeudi 22 décembre 2005 Statut Membre Dernière intervention 8 février 2009 - 26 mars 2006 à 19:23
Salut,

J'ai besoin de créer un treeview, et pour cela, je dois savoir a chaque moment si un node existe deja ou pas. J'ai essayé la methode de Vb6, a savoir
Buffer = TreeExtr.Nodes(strPath).Text avec une gestion d'erreur mais l erreur se produit toujours, meme si le node existe. J'ai egalement essayé
If Not DbTree.Nodes.Find(Relative & "" & UCase(NodeElement(a)), True) Is Nothing Then...
Mais la encore ça ne fonctionne pas, ainsi que
If DbTree.Nodes.ContainsKey(Relative & "" & UCase(NodeElement(a))) = False Then...
Donc j'aimerais savoir comment faire pour savoir si un node existe deja a partir de sa clé ou pas. Le probleme comparé a VB6, c'est que j'ai plusieurs nodes identiques, avec la meme clé... Est ce normal?

Merci d'avance
LTourist

1 réponse

LTourist Messages postés 24 Date d'inscription jeudi 22 décembre 2005 Statut Membre Dernière intervention 8 février 2009
26 mars 2006 à 19:23
Bon j'ai finit par trouvé, en modifiant une ancienne fonction que j'avais créer sous vb6. J'avais deja esesayé, mais ça ne fonctionnait pas car l'argument searchAllChildren etait a false, et donc il ne cherchait que dans les noeuds principaux. Pour ceux que ça interesse voici la fonction :

Public Function NodeExist(ByVal Tree As TreeView, ByVal Method As String, ByVal str As String) As Boolean

'Déclaration des variables
Dim Buffer As String

NodeExist = True
On Error GoTo NoNode
Select Case Method
Case "Path"
Buffer = Tree.Nodes.Find(str, True)(0).Text
Exit Function
Case "Index"
Buffer = Tree.Nodes(CInt(str)).Text
Exit Function
End Select
NoNode:
NodeExist = False
End Function

Tree est le TreeView dans lequel on doit chercher le noeud, Method, la methode de recherche("Path" via la clé, et "Index" par l'index), et str la chaine recherchée (mettre par exemple "6" si vous rechercher le noeud d'index 6 par la méthode index).
Voila la fonction est un peu basique, j'aurais pu faire des Enum et tout mais bon...:

LTourist
3
Rejoignez-nous