Faire contenir un fichier pdf ouvert à partir d'un TreeView dans un panel

Signaler
Messages postés
11
Date d'inscription
mercredi 16 mars 2011
Statut
Membre
Dernière intervention
19 avril 2011
-
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
-
Bonjour,
J'ai en fait deux questions:

1) J'ai crée un contrôle TreeView qui autorise le lancement de fichiers en double cliquant dessus dans l'arbre. Voici le code source :

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{

if (e.Action == TreeViewAction.ByMouse)
{
System.Diagnostics.Process.Start(e.Node.FullPath)
}
}

Je souhaiterai que ce fichier soit ouvert dans un panneau contenu sur la droite du windows form. J'ai essayé d'utiliser la même commande dans un contrôle panel, mais celuici ne connait pas e.Node .

2) Je souhaiterai également interdire d'ouvrir des dossiers de cette facon, c'est a dire filtrer entre les node "dossiers" et les node "fichiers", j'ai essayé de filtrer par type dans la même méthode :

foreach(PropertyDescriptor descriptor in TypeDescriptor.GetProperties(e))
{
string name=descriptor.Name;
object value=descriptor.GetValue(e);
MessageBox.Show(name + value);
}
// if (e.Node.GetType() is file)
//{
//MessageBox.Show(e.Node.GetType().ToString());
System.Diagnostics.Process.Start(e.Node.FullPath);

//}

}

Malheureusement les node fichier et dossiers sont tous de type TreeNode :(

Connaissez vous une solution ?

Merci,

A. HOREL

3 réponses

Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
Salut,

1) pour afficher ton PDF dans ton application il te faut un contrôle PDF viewer (je sais pas bien où tu peux trouver ça, mais ça doit pas être trop dur avec l'ami google).

2) Pour différencier un TreeNode "Dossier" d'un TreeNode "Fichier" tu as 2 possibilités :
- tu regardes la valeurs de l'attribut où tu enregistres le nom complet du dossier/fichier, en vérifiant qu'il termine par un "/" (c'est donc un répertoire).
- lorsque tu montes ton TreeView, pour chaque noeud, tu inscrits dans la propriété Tag(*)
du TreeNode une valeur qui indique s'il s'agit d'un fichier ou d'un dossier, puis tu testes là-dessus.

(*)
: l'attribut Tag sert à associer n'importe quelle info à ton TreeNode, il est de type object.
Messages postés
11
Date d'inscription
mercredi 16 mars 2011
Statut
Membre
Dernière intervention
19 avril 2011

Merci de ta réponse,
Le fullpath ne retourne pas de / pour les dossiers, mais je peux les filtrer avec l'extension.
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
Alors attention, il est tout à fait possible de tomber sur des fichiers sans extension. De la même manière il est possible de trouver des répertoires avec un semblant d'extension (un nom qui contient des points, s'entend)