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

VB.NET Discussion :

Erreur sur 'Annuler' d'un OpenFileDialog [Débutant]


Sujet :

VB.NET

  1. #1
    Membre habitué Avatar de Shennong
    Homme Profil pro
    Technicien Informatique/Hotliner
    Inscrit en
    Février 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien Informatique/Hotliner
    Secteur : Santé

    Informations forums :
    Inscription : Février 2012
    Messages : 186
    Points : 135
    Points
    135
    Par défaut Erreur sur 'Annuler' d'un OpenFileDialog
    Bonjour,

    Je viens vers vous car impossible de comprendre le pourquoi du comment de l'erreur que me renvoi mon code.

    Pour planter le décor, j'ai simplement un OpenFileDialog que j'appel afin d'ajouter un ou plusieurs fichiers à un listbox. Lorsque l'on valide, tout fonctionne correctement. Les fichiers sont bien copiés de le emplacement source evrs l'emplacement de destination, et ils apparaissent bien dans le listbox. Mais pour une obscure raison, lorsque je ne sélectionne pas de fichier (cartouche du nom de fichier vide du coup), et que je clic sur le bouton 'Annuler', mon try me renvoi le message d'erreur suivant :

    "Un nom de fichier vide n'est pas autorisé
    Nom du paramètre : sourceFileName"

    Alors j'ai cherché ce qu'était ce sourcefilename, et je n'ai rien trouvé d'intéressant non plus.

    Voici les attributs de mon OpenFileDialog :

    Nom : Sans titre-2.png
Affichages : 618
Taille : 8,6 Ko

    Je précise juste que le code suivant que j'utilise pour ouvrir le openfiledialog m'a déjà servi, tel quel, et je n'ai jamais eut cette erreur auparavant :

    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
    If lbl_console.Text <> "..." Then
     
                openfile.ShowDialog()
     
                'On gère le ou les fichiers sélectionnés
                If System.Windows.Forms.DialogResult.OK Then
     
                    'On lit les fichiers
                    Dim fichier As String
     
                    For Each fichier In openfile.FileNames
                        'On ajoute les fichiers au répertoire de roms de la console choisie
                        Try
     
                            File.Copy(fichier, cheminconsole & System.IO.Path.GetFileName(fichier), True)
     
                            lst_roms.Items.Clear()
     
                            Dim files = My.Computer.FileSystem.GetFiles(cheminconsole, FileIO.SearchOption.SearchAllSubDirectories, "*.*")
     
                            For Each rom As String In files
                                resultat = IO.Path.GetFileName(rom)
                                lst_roms.Items.Add(resultat)
                            Next
     
                        Catch ex As Exception
     
                            ' On gère un éventuel problème
                            MessageBox.Show("Une erreur est survenue lors de l'ajout. Le message est :" & vbCrLf & vbCrLf & ex.Message)
     
                        End Try
     
                    Next fichier
     
                End If
     
            End If
    Donc si quelqu'un veut bien éclairer ma lanterne s'il-vous-plaît, cela m'aiderait grandement !

    Merci d'avance pour vos réponses.

    Cordialement,

    --
    Shennong

  2. #2
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Car tu n'utilises pas la réponse correctement ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     openfile.ShowDialog()
     
                'On gère le ou les fichiers sélectionnés
                If System.Windows.Forms.DialogResult.OK Then
                '.....
                '......
    Essayes ceci (en l'agrémentant à ta guise bien sur !) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            Using _ofd As New OpenFileDialog
                With _ofd
                    .Title = "Selectionnez un fichier (*.exe)"
                    .Filter = "Executable|*.exe;*.exe"
                    .CheckFileExists = True
                    If .ShowDialog() = DialogResult.OK Then
                      '....
                      '...........
                    End If
                End With
            End Using
    A+

  3. #3
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Points : 10 167
    Points
    10 167
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Tout d'abord, désolé si ma réponse en répète une autre déjà "arrivée", cela m'a pris un peu (beaucoup) de temps pour la rédiger.

    Quand tu annules ta boîte de dialogue, tu ne récupères aucun nom de fichier et c'est pour cela que tu as une erreur.

    Selon ce que tu as fait, ta boîte de dialogue retourne un "message" en se fermant Ton "message" peut avoir l'une ou l'autre des valeurs suivantes (elles sont toutes dans l'aide, rubrique :DialogResult, énumération) et tu peux utiliser un "IF" ou un "Select Case" pour le tester :

    DialogResult.Abort
    La valeur de retour à partir de la boîte de dialogue est Abort (généralement transmise par un bouton intitulé Abandonner).

    DialogResult.Cancel
    La valeur de retour à partir de la boîte de dialogue est Cancel (généralement transmise par un bouton intitulé Annuler).

    DialogResult.Ignore
    La valeur de retour à partir de la boîte de dialogue est Ignore (généralement transmise par un bouton intitulé Ignorer).

    DialogResult.No
    La valeur de retour à partir de la boîte de dialogue est No (généralement transmise par un bouton intitulé Non).

    DialogResult.None
    Nothing est retourné à partir de la boîte de dialogue. Cela signifie que l'exécution de la boîte de dialogue modale se poursuit.

    DialogResult.OK
    La valeur de retour à partir de la boîte de dialogue est OK (généralement transmise par un bouton intitulé OK).

    DialogResult.Retry
    La valeur de retour à partir de la boîte de dialogue est Retry (généralement transmise par un bouton intitulé Réessayer).

    DialogResult.Yes
    La valeur de retour à partir de la boîte de dialogue est Yes (généralement transmise par un bouton intitulé Oui).

    Dans ton cas, je te dirais de tester avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim result As DialogResult = OpenFileDialog1.ShowDialog()
    If (result = DialogResult.OK) Then
         Ajouter le nom du fichier au ComboBox/Listbox
    else
         Quitter le programme ou recommencer la sélection
    end if

  4. #4
    Membre habitué Avatar de Shennong
    Homme Profil pro
    Technicien Informatique/Hotliner
    Inscrit en
    Février 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien Informatique/Hotliner
    Secteur : Santé

    Informations forums :
    Inscription : Février 2012
    Messages : 186
    Points : 135
    Points
    135
    Par défaut
    Merci à vous deux pour vos réponses très intéressantes. J'ai utilisé ta méthode Wallace1, et ça marche parfaitement bien !

    En fait je me rend compte que j'utilisais mal ce contrôle. Il n'est pas aussi facile à gérer qu'il en a l'air.

    J'ai compris ton code du premier coup d'oeil et effectivement c'était assez simple finalement, et j'ai compris mes erreurs.

    Merci beaucoup pour ces informations !

    À bientôt.

    --
    Shennong

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur sur annulation imprimer
    Par marcmarc150 dans le forum VBA Access
    Réponses: 4
    Dernier message: 30/05/2012, 09h21
  2. Erreur sur la classe OpenFileDialog
    Par Herwin78800 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 17/07/2009, 17h13
  3. Erreur sur annuler avec workbook.saveas
    Par liop49 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/03/2009, 17h19
  4. Erreur sur OpenFileDialog suivant framework
    Par ramoud dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/03/2009, 17h14
  5. Réponses: 1
    Dernier message: 02/06/2006, 10h55

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