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

ahorel Messages postés 11 Date d'inscription mercredi 16 mars 2011 Statut Membre Dernière intervention 19 avril 2011 - 16 mars 2011 à 07:46
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 - 17 mars 2011 à 09:51
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

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
16 mars 2011 à 11:16
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.
0
ahorel Messages postés 11 Date d'inscription mercredi 16 mars 2011 Statut Membre Dernière intervention 19 avril 2011
17 mars 2011 à 02:33
Merci de ta réponse,
Le fullpath ne retourne pas de / pour les dossiers, mais je peux les filtrer avec l'extension.
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
17 mars 2011 à 09:51
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)
0
Rejoignez-nous