IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

OpenFileDialog et options complementaire


Sujet :

Windows Forms

  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut OpenFileDialog et options complementaire
    Bonjour

    J'aimerais crer un dialogue de recherche de fichier avec des options plus personalisées que le openfiledialog standard

    Exemple
    Lorsqu'une liste de fichier visible avec un browser du genre OpenfileDialog, j'aimerais pouvoir selecter fichier par dans la liste afin de faire apparaitre dans une form certaines propriétés ou le contenu du fichier pointé

    Cela me semble fort utile dans certains contexte mais je n'ai rien trouvé dans ce sens

    Une Piste ?


    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Regarde ici peut être :
    http://www.codeproject.com/KB/dialog...eDialogEx.aspx

    Sinon, je crains qu'il faille faire tout "à la main" ...

  3. #3
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci Smyley

    J'avais déja trouvé ce lien.
    Ce qu'il a fait est tres intéressant mais tout a fait orienté image !

    En tous cas c'est une bonne piste de départ pour le faire "a la main" mais sans tout devoir inventer

    Ce qui manque au minimum a l'openfile dialog c'est un event genre selectedItemChanged qui donnerait le nom du fichier sur lequel on est positionné dans la liste

    C'est vraiment dommage qu'ils n'aient pas au moins prevu ca chez MS ???

  4. #4
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    Beh tu peux toujours créer un UserControl hérité d'un OpenFile Dialog et lui ajouter les évènements dont tu as besoin non ?

  5. #5
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Mais non !
    Justement OpenfileDialog n'est en plus pas héritable

    Je me demande vraiment pourquoi ils ont fermé ca comme ca ??

    Je crois que jevais refaire un dialogue complet a partir d'un folderbrowserdialog dans lequel j'afficherai le nom des fichier dans une liste ce qui me permettra de gerer les event selecteditemchanged et de pouvoir traiter les info du fichier selecté sans fermer le dialogue

  6. #6
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Citation Envoyé par olibara Voir le message
    Je me demande vraiment pourquoi ils ont fermé ca comme ca ??
    Il me semble que c'est tout simplement parce que le OpenFileDialog n'est pas un contrôle .NET mais un wrapper autour du OpenFileDialog natif du système.

  7. #7
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci Smyley

    Bien sur on peut se douter que .NET n'est pas la pour remplacer l'OS et ses fonction primitives

    Mais vu le nombre de post que j'ai trouve sur le sujet, la demande et le besoin me paraissent evident et il me semble quand meme que ce wrapper est une faille de design .NET

    Mais je ne peux hélas que me lamenter et me diriger vers un bricolage maison

  8. #8
    Ziki_s
    Invité(e)
    Par défaut
    Chalut,

    T'as essayé le composant FileBrowser?

  9. #9
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut

    Ca a l'air pas mal du tout !
    Je vais jeter un oeil

  10. #10
    Ziki_s
    Invité(e)
    Par défaut
    Je l'avais utilisé lors d'un projet pour mon école. Mais moi j'en avait besoin pour sélectionner un/plusieurs dossiers et/ou fichiers.

    Si tu veux je peux essayer de te retrouver le bout de code

  11. #11
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut

    Mon but est de permettre de parcourir une liste de fichiers selectionné dans un folder (tout en restant au niveau filebrowser)
    Sur un event selecteditemchanged, j'afficherais des infos sur le fichier pointé
    L'utilisateut peut faire open ou continuer sa recherche

  12. #12
    Ziki_s
    Invité(e)
    Par défaut
    Je viens d'ouvrir à nouveau mon projet et je vois qu'il n'y a pas d'événement SelectedItemChanged. Il n'y a qu'un SelectedFolderChanged et ce dernier ne se déclenche que lorsque l'on double-clique sur un dossier.

    Moi je l'ai utilisé avec un bouton et un treeView. Quand je clique sur le bouton de copie, le chemin du fichier/dossier sélectionné est copié dans le treeView.

    A toi de voir de quelle manière et sur quel événement tu vas placer ton code.

    C'était un peu délicat lorsque l'utilisateur sélectionnait un document sur le bureau ou un disque, donc j'ai fait quelques tests afin de pouvoir récupérer le bon chemin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    #region Ajout d'un fichier/répertoire à installer
    private void btnCopyFileSelected_Click(object sender, EventArgs e)
    {
        if (cbSectionFichiersSource.Items.Count > 0) // Test si il y a au moins une section
        {
            // Pour chaque item séléctionné
            for (int i = 0; i < fbFichiers.FileView.SelectedOrder.Count; i++)
            {
                string CheminNomFichier;
                Boolean isDirectory = false;
     
                CheminNomFichier = fbFichiers.SelectedItem.Path; // on sauvegarde le chemin de l'item selectionné
     
                // Si le chemin est le "Desktop" alors on le remplace par son véritable chemin
                if (fbFichiers.SelectedItem.Path == "Desktop")
                    CheminNomFichier = Environment.GetFolderPath(System.Environment.SpecialFolder.DesktopDirectory).ToString();
     
                // Si le repertoire séléctionné est Mes Documents, alors on le remplace par son Chemin
                if (fbFichiers.SelectedItem.Path == fbFichiers.ShellBrowser.MyDocumentsName)
                    CheminNomFichier = fbFichiers.ShellBrowser.MyDocumentsPath;
     
                if (CheminNomFichier[CheminNomFichier.Length - 1] != '\\') // Si il n'y a pas de '\' à la fin du chemin
                    CheminNomFichier += "\\"; // On ajoute le '\' à la fin de la chaine
     
                CheminNomFichier += ((ListViewItem)(fbFichiers.FileView.SelectedOrder[i])).Name; // A la fin du chemin, on ajoute l'élément séléctionné
     
                if (((ListViewItem)(fbFichiers.FileView.SelectedOrder[i])).Name == fbFichiers.ShellBrowser.MyDocumentsName)
                    CheminNomFichier = fbFichiers.ShellBrowser.MyDocumentsPath;
     
                string expression = @"([A-Z]:\\)";
                string expression2 = @"([A-Z]:)";
     
                // Création d'un objet Regex.
                Regex r = new Regex(expression);
                Regex r2 = new Regex(expression2);
     
                // Recherche si une partie de la chaine correspond à l'expression régulière.
                Match m = r.Match(CheminNomFichier);
                Match m2 = r2.Match(CheminNomFichier);
     
                // Test si un lecteur a été selectionné (ex: C:\) puis le renomme de façon standardisée (ex: "d:\" au lieu de "Poste de travail\DATA(D:)") 
                if (m2.Success && !m.Success) 
                    CheminNomFichier = m2 + "\\";
     
                // Détermine si l'élément sélectionné est un fichier ou un dossier
                try
                {
                    if (!System.IO.File.Exists(CheminNomFichier))
                        isDirectory = ((new System.IO.FileInfo(CheminNomFichier).Attributes & System.IO.FileAttributes.Directory) == System.IO.FileAttributes.Directory);
                }
                catch (Exception) { isDirectory = false; }
     
                if (r.Match(CheminNomFichier).Success) //Si le chemin du fichier est correct, on l'ajoute dans l'ArrayList
                {
                    objInst.AjoutObjetInstall(CheminNomFichier, isDirectory, cbSectionFichiersSource.SelectedItem.ToString());
     
                    AfficheTvFileSelected();
                }
            }
        }
        else
            lblDescription.Text = "Veuillez entrer au minimum une section.";
    }
    #endregion
    Bon là je te copie l'intégralité du code dans l'événement Click de mon bouton. il y a certaines choses dont tu n'auras pas besoin.

  13. #13
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci Ziki_S

  14. #14
    Ziki_s
    Invité(e)
    Par défaut
    De nada

Discussions similaires

  1. Option Multiselect dans OpenFileDialog
    Par patbeautifulday1 dans le forum Général VBA
    Réponses: 3
    Dernier message: 03/03/2008, 12h31
  2. [Kylix] kylix3 : pb sur options de projet
    Par Arsene dans le forum EDI
    Réponses: 3
    Dernier message: 09/04/2003, 10h41
  3. [propriétés]Option Checked
    Par psl dans le forum Composants VCL
    Réponses: 6
    Dernier message: 22/08/2002, 08h07
  4. Parametrage des options de projet
    Par ares7 dans le forum EDI
    Réponses: 7
    Dernier message: 22/07/2002, 15h33
  5. Vous gerez comment les options d'un programme?
    Par n0n0 dans le forum C++Builder
    Réponses: 5
    Dernier message: 17/05/2002, 13h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo