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 :

problème avec FolderBrowserDialog.ShowDialog()


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 112
    Points : 65
    Points
    65
    Par défaut problème avec FolderBrowserDialog.ShowDialog()
    Bonjour,

    Dans un programme VB.net sous VS 2005 :
    J'utilise la méthode "FolderBrowserDialog.ShowDialog()" pour faire choisir un répertoire, c'est pratique et ça marche.
    Mon souci : dans une autre partie de mon programme, j'appelle une deuxième fois cette méthode et là : rien ne se passe. Les instructions sont lues mais la boite de dialogue n'apparait pas.
    J'ai essayé avec 2 instances distinctes d'un FolderBrowserDialog : même comportement !
    Je ne comprends pas.

    Quelqu'un a-t-il déjà rencontré ce problème ?
    merci aux contributeurs.

  2. #2
    Membre éprouvé Avatar de cubitus91
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 726
    Points : 933
    Points
    933
    Par défaut
    salut,
    Met ton code. Ca sera plus simple.
    Cdt
    Le tag est bien utile, alors pensez y !

  3. #3
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 112
    Points : 65
    Points
    65
    Par défaut
    Merci de ton intérêt Cubitus.
    Ci-joint le code en pièce jointe (form1.vb)
    La méthode en question est appelée une première fois dans la sub "Form1_load" et une deuxième fois dans la sub "démarrage".

    cordialement
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent
    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
    Points : 8 344
    Points
    8 344
    Par défaut
    entre parenthèses, il faut tester si la valeur de retour de FolderBrowserDialog1.ShowDialog() est bien DialogResult.OK car si l'utilisateur cliques sur annuler ton code va planter en poursuivant tout de même le traitement...

  5. #5
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 112
    Points : 65
    Points
    65
    Par défaut
    Merci Smyley de ta suggestion : j'en prends bonne note.
    Cependant, j'ai prévu la réponse vide qui fait sortir de la procédure.

    Cordialement

  6. #6
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Citation Envoyé par MadMax4
    Merci Smyley de ta suggestion : j'en prends bonne note.
    Cependant, j'ai prévu la réponse vide qui fait sortir de la procédure.

    Cordialement
    Poste un morceau de code pour voir cela de plus pret
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  7. #7
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 112
    Points : 65
    Points
    65
    Par défaut
    cher Cubitus,

    Voici mon projet sous forme ".rar".
    J'y ajoute la base Access qui est utilisée au cas où.

    Merci de ton aide
    cordialement
    Fichiers attachés Fichiers attachés

  8. #8
    Membre éprouvé Avatar de cubitus91
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 726
    Points : 933
    Points
    933
    Par défaut
    Bon j'ai regardé ton code d'un peu plus prés. Il y a deux ou trois chose qui me saute aux yeux.
    Alors,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Me.FolderBrowserDialog1 = New System.Windows.Forms.FolderBrowserDialog() --- Tu peux le virer si tu l'as mis avec le design de la forme.
    Me.FolderBrowserDialog1.Description = "Indiquer le repertoire contenant la base Messages"
    Me.FolderBrowserDialog1.ShowDialog()
    repertoire_base = FolderBrowserDialog1.SelectedPath
    
    
    Tu peux déporter ton appel à ton folderbrowserDialog gràce à une fonction. Cette fonction te retourne le chemin.
    (tu peux lui passer en paramétre ta description et la variable à tester par exemple)
    Tu auras donc :
    repertoire_base = FonctionBrowser(param1,param2....)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If repertoire_base = ""ThenExitSub
    Call creation_clé("Base", repertoire_base) --- tu peux enlever le CALL
    
    C'est pas le top ton Then exit Sub
    De plus ta procédure creation_clé(...), tu devrais la passer en fonction. Pour pouvoir retourner en cas d'erreur d'accés un retour vide ou autre (boolean). Tu peux aussi la mettre en classe si tu prefére.
    Tu peux faire un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If not repertoire_base = ""Then
    ....
    voila c'est déja un début. Je vais regarde ton projet de plus pres.
    Le tag est bien utile, alors pensez y !

  9. #9
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Normalement on fait comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If FolderBrowserDialog.ShowDialog = DialogResult.Ok then 'le mec a cliqué sur OK
     
    Else 'sinon
    'ne rien faire ou alors traité l'erreur
     
    End If
    PS: Pas besoin d'initialisation de ta boite de dialogue !
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  10. #10
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 112
    Points : 65
    Points
    65
    Par défaut
    Merci Aspic, je vais tester ça aussi mais je doute que le problème soit là.
    Je vais également essayer les suggestions de Cubitus.

    Cordialement

  11. #11
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 112
    Points : 65
    Points
    65
    Par défaut Projet en .zip
    Pas de problème : voir ci-joint.
    Au passage, j'ai essayé ta solution de passage par une fonction pour le FOlder Browser : ça donne le même résultat : le code est lu mais à la deuxième utilisation de la fonction : il n'est pas exécuté !
    Bizarre, bizarre.

    Merci beaucoup néanmoins pour ce que tu fais.
    Cordialement
    Fichiers attachés Fichiers attachés

  12. #12
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Citation Envoyé par MadMax4
    Pas de problème : voir ci-joint.
    Au passage, j'ai essayé ta solution de passage par une fonction pour le FOlder Browser : ça donne le même résultat : le code est lu mais à la deuxième utilisation de la fonction : il n'est pas exécuté !
    Bizarre, bizarre.

    Merci beaucoup néanmoins pour ce que tu fais.
    Cordialement
    Je vais voir ca !
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  13. #13
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    A part des erreurs partout dans le programme, je ne vois pas de probleme avec la doite de dialogue avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     base = repert_base()
            If base = "" Then
                description = "Indiquer le repertoire contenant la base Messages"
                If FolderBrowserDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
                    repertoire_base = dialogue(description)
                    If repertoire_base = "" Then Exit Sub
                    creation_clé("Base", repertoire_base)
                    Me.MessageTableAdapter.Connection.ConnectionString = provider & repertoire_base & "\" & "messages.mdb"
                End If
            Else
                repertoire_base = base
                Me.MessageTableAdapter.Connection.ConnectionString = provider & repertoire_base & "\" & "messages.mdb"
            End If
    Voila
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  14. #14
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 112
    Points : 65
    Points
    65
    Par défaut
    Oui Aspic, j'ai bien noté.
    Mais le problème n'est pas là.

    Lors du second appel à la méthode folderBrowser... rien ne s'exécute bien que le code soit correctement écrit.

    Merci tout de même pour l'intérêt que tu portes à mon souci

    Cordialement
    madmax

  15. #15
    Membre éprouvé Avatar de cubitus91
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 726
    Points : 933
    Points
    933
    Par défaut
    Comme la dit Aspic. Ton programme est pas mal buggé !!

    Je le refait pour comprendre un peu le truc que tu veux. Par contre je ne comprend pas un truc. Tu sélectionne en premier ta base. C'est bien ca. Mais pourquoi as tu prit un FolderBrowser. Pourquoi pas un FileBrowser tu mettais un filtre pour spécifier que tu voulais un .mdb uniquement.
    La suite apres...
    Le tag est bien utile, alors pensez y !

  16. #16
    Expert éminent
    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
    Points : 8 344
    Points
    8 344
    Par défaut
    j'éssaye moi aussi mais jsuis juste buggé sur un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.ma_ProgressBar.Maximum = dirInfo.GetFiles.Length

  17. #17
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 112
    Points : 65
    Points
    65
    Par défaut
    Merci Smyley,

    C'est mon deuxième souci !
    Lorsque les répertoires sont bien fixés dans la base de registre, cette partie de code avec la progressBar fonctionne, mais à l'initialisation des répertoires, quand j'utilise les FolderBrowser : j'ai une erreur sur la progressBar.

    J'suis vraiment mauvais (mais autodidacte débutant)
    cordialement

  18. #18
    Expert éminent
    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
    Points : 8 344
    Points
    8 344
    Par défaut
    quand je retire l'accès aux clefs du registre ( lecture / écriture ) ça marche ... mais pourquoi ?

  19. #19
    Expert éminent
    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
    Points : 8 344
    Points
    8 344
    Par défaut
    YES !
    essaye un truc
    à la ligne 213
    tu fermes la fenêtres en cours alors qu'elle n'est pas encore ouverte ( dans le Load )
    tu t'es trompé à mon avis tu devais faire

  20. #20
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 112
    Points : 65
    Points
    65
    Par défaut Super
    Merci SMYLEY

    Je crois que tu as trouvé, ça marche avec ta correction ; en outre, elle résoud mes 2 soucis !

    Je reste pantois devant ta sagacité.

    merci à tous pour vos efforts, vous m'enlevez une belle épine du pied. Je dois présenter la V0 de cet utilitaire à mon chef demain matin (je ne comprend pas ce qu'il veut en faire mais bon ...)

    Bien cordialement
    MadMax

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Débutant] Problème avec ShowDialog qui crash l'application
    Par peltiarn dans le forum VB.NET
    Réponses: 10
    Dernier message: 25/05/2014, 23h12
  2. Problème avec ShowDialog
    Par ali douiri dans le forum Android
    Réponses: 1
    Dernier message: 27/04/2014, 03h38
  3. [Débutant] problème avec showdialog
    Par tonnebrre dans le forum VB.NET
    Réponses: 8
    Dernier message: 22/07/2011, 08h59
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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