Afficher nom et attribut d'un noeud treeview

cs_Yanith Messages postés 34 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 24 septembre 2014 - 18 avril 2013 à 12:39
cs_Yanith Messages postés 34 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 24 septembre 2014 - 18 avril 2013 à 16:56
Bonjour à tous,

Je travaille actuellement sur une petite application qui me permet de naviguer sur le Web et de récupérer quelques informations Via HTMLAgilityPack. Je me permet de venir vers vous pour vous faire part d'un problème que je rencontre.

Dans mon application exemple, que vous pouvez télécharger par le biais du lien tout en bas, j'affiche une page web dans un onglet et dans l'onglet voisin j'affiche dans une TreeView l'arborescence du code HTML.
Je souhaiterais afficher dans un label de la barre de statuts le nom et les attributs du nœud sélectionné dans la TreeView, hors actuellement je n'affiche que le nom du nœud.

Est ce que quelqu'un peut me dire se qui ne va pas dans mon code ?

Application crée avec VS2012.

Lien de téléchargement : http://dl.free.fr/bZYXeMRgy
Nom d'utilisateur : aucun
Mot de passe : csharp

2 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
18 avril 2013 à 16:07
Bonjour, comme expliqué , il y a peu de chance que quelqu'un se risque à télécharger ton code.
Le plus simple est que tu postes les extraits de code qui te posent problème, avec des commentaires pour bien cerner tes attentes.
Utilise la coloration syntaxique (3ième icône en partant de la droite : )

Whismeril
0
cs_Yanith Messages postés 34 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 24 septembre 2014
18 avril 2013 à 16:56
Bon bin me revoilà alors avec mon code.

Donc voici pour remplir ma treeview une fois la page web complètement chargé

private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
HtmlAgilityPack.HtmlDocument HTMLDoc = new HtmlAgilityPack.HtmlDocument();
HTMLDoc.Load(WebBrowser.DocumentStream);

TreeViewHTMLSource.Nodes.Clear();

TreeNode Root = new TreeNode(e.Url.DnsSafeHost);
TreeViewHTMLSource.Nodes.Add(Root);
InsertInTreeView(Root, HTMLDoc.DocumentNode);
}


Ensuite la fonction qui contruit l'arborescence de la treeview

private void InsertInTreeView(TreeNode treeNode, HtmlAgilityPack.HtmlNode rootNode)
{
foreach (HtmlAgilityPack.HtmlNode node in rootNode.ChildNodes.Where(n => n.Name != "#text").Where(n => n.Name != "#comment"))
{
TreeNode n = new TreeNode(node.Name);
node.Attributes.Select(a => a.Name + "=" + a.Value).ToList().ForEach(x => n.Nodes.Add(x));
treeNode.Nodes.Add(n);
InsertInTreeView(n, node);
}
}


et pour finir, une fois que l'on sélectionne un noeud de la treeview

private void TreeViewHTMLSource_AfterSelect(object sender, TreeViewEventArgs e)
{
ToolStripStatusLabel_PathTag.Text = e.Node.FullPath;
ToolStripStatusLabel_Tag.Text = e.Node.Text; // J'aimerais que ce label affiche le nom du noeud et ces attributs
}


Dans se dernier code j'affiche dans la barre de statut de mon application le chemin complet du noeud et le nom du noeud, mais que je voudrais que se dernier affiche le nom du noeud ET ces attributs.
Donc je pense déjà que je fait une erreur du coté de la contruction de l'arborescence de la treeview.

Pour tester se code il vous faut ajouter à votre projet la référence HTMLAgilityPAck via l'assistant de package NuGet.

J'espère avoir été clair sur le code et ma demande.
Merci.
0
Rejoignez-nous