none
SaveFileDialog RRS feed

  • Question

  • Bonjour,

    Dans une form, j'ai un bouton qui permet d'exporter le contenu d'un Listview vers un fichier csv.

    J'utilise un SaveFileDialog pour choisir le nom du fichier csv puis le generer.

    Tout fonctionne, excepter la durée.

    Le SaveFileDialog met environ 30 secondes pour apparaitre alors que le traitement du listview et le remplissage du fichier csv en lui meme ne fait que 4 à 5 secondes.

    Je ne vois pas de quoi ça peut venir.

    voici l'extrait du code

    'Préparation de la fenetre Saveas
            SaveFileDialog1.DefaultExt = "csv"
            SaveFileDialog1.CreatePrompt = True
            SaveFileDialog1.OverwritePrompt = True
            SaveFileDialog1.FileName = "Liste_Dossiers_" & ComboBox_Recherche.Text.ToString
            SaveFileDialog1.Filter = "Fichier Csv (*.csv)|*.csv|Tous les fichiers (*.*)|*.*"
            SaveFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
    
            ' Call ShowDialog and check for a return value of DialogResult.OK,
            ' which indicates that the file was saved. 
            Dim result As DialogResult
            result = SaveFileDialog1.ShowDialog()

    Si quelqu'un à une idée, merci d'avance

    Cordialement,


    H.Sabatou

    jeudi 22 janvier 2015 12:36

Réponses

  • Bonjour,

    Utilisez SaveFileDialog  via le designer ou via le code est identique en terme de perfs.

    Même si moi aussi j'utilise SaveFileDialog comme vous (ie avec un using et non le designer), l'impact en terme de perf est nul.

    comme dirait l'autre : "La vérité est ailleurs" (et certainement du réseau si c'est un répertoire réseau)


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    • Proposé comme réponse PhGr_ vendredi 23 janvier 2015 08:08
    • Marqué comme réponse HSabatou vendredi 23 janvier 2015 08:21
    vendredi 23 janvier 2015 06:35

Toutes les réponses

  • Bonjour,

    Est-ce que vous faites vous-même une nouvelle instance du SaveFileDialog à chaque fois ou alors est-il mis dans le designer d'une fenêtre?


    Philippe

    jeudi 22 janvier 2015 13:02
  • le SaveFileDialog est mis graphiquement dans le designer de la form depuis la boite à outil.


    H.Sabatou

    jeudi 22 janvier 2015 13:18
  • Ok, c'est bien ce que je pensais.

    A la place de cela, essayez plutôt de déclarer une nouvelle instance de "SaveFileDialog" et d'y mettre les propriétés comme vous l'avez fait, idéalement entouré d'une clause "using" comme ceci :

    Using sfd As New SaveFileDialog
      sfd.DefaultExt="csv"
      '...
      Dim result As DialogResult
      result = sfd.ShowDialog()
      '...
    End Using

    et dites nous si cela va plus vite...


    Philippe

    • Marqué comme réponse HSabatou jeudi 22 janvier 2015 13:35
    • Non marqué comme réponse HSabatou vendredi 23 janvier 2015 08:21
    jeudi 22 janvier 2015 13:31
  • Cela fonctionne sans rien changer

    Je pense que j'avais mon systeme qui était ralenti qu a des acces reseau plus long entre le serveur de fichier et mon pc.

    Je garde sous le coude votre réponse si jamais cela se reproduit.

    Merci


    H.Sabatou

    jeudi 22 janvier 2015 13:35
  • Bonjour,

    Utilisez SaveFileDialog  via le designer ou via le code est identique en terme de perfs.

    Même si moi aussi j'utilise SaveFileDialog comme vous (ie avec un using et non le designer), l'impact en terme de perf est nul.

    comme dirait l'autre : "La vérité est ailleurs" (et certainement du réseau si c'est un répertoire réseau)


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    • Proposé comme réponse PhGr_ vendredi 23 janvier 2015 08:08
    • Marqué comme réponse HSabatou vendredi 23 janvier 2015 08:21
    vendredi 23 janvier 2015 06:35
  • Bonjour,

    Utilisez SaveFileDialog  via le designer ou via le code est identique en terme de perfs.

    Même si moi aussi j'utilise SaveFileDialog comme vous (ie avec un using et non le designer), l'impact en terme de perf est nul.

    comme dirait l'autre : "La vérité est ailleurs" (et certainement du réseau si c'est un répertoire réseau)


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    Oui, c'est vrai.

    Et pour bien le voir il aurait fallu à ce moment là mettre un curseur de debuggage et voir quelle ligne prend réellement du temps.

    Donc en effet ce n'était pas la bonne réponse. Donc mettre plutôt la réponse de Richard comme bonne réponse et non pas la mienne.


    Philippe

    vendredi 23 janvier 2015 08:07