web-dev-qa-db-fra.com

Plusieurs types dans un filtre SaveFileDialog

Dans mon SaveFileDialog, le filtre contient plusieurs types. Cependant, lors de l'affichage de la boîte de dialogue, si je choisis un filtre pour afficher les fichiers de ce type dans le répertoire, je ne peux voir que les fichiers des premier et dernier filtres.

    bool save;
    SaveFileDialog dlg = new SaveFileDialog();
    dlg.FileName = "*";
    dlg.DefaultExt = "bmp";
    dlg.ValidateNames = true;

    dlg.Filter = "Bitmap Image (.bmp)|*.bmp|Gif Image (.gif)|*.gif |JPEG Image (.jpeg)|*.jpeg |Png Image (.png)|*.png |Tiff Image (.tiff)|*.tiff |Wmf Image (.wmf)|*.wmf";
    save = (bool)dlg.ShowDialog();

    if (save)
    {
        SaveImage(dlg.FileName);
    }

Je peux voir les fichiers de type .bmp et .wmf Si je change l'ordre des filtres, je ne peux toujours voir que le premier et le dernier.

36
Eamonn McEvoy

Supprimez les espaces après le type de fichier:

dlg.Filter = "Bitmap Image (.bmp)|*.bmp|Gif Image (.gif)|*.gif|JPEG Image (.jpeg)|*.jpeg|Png Image (.png)|*.png|Tiff Image (.tiff)|*.tiff|Wmf Image (.wmf)|*.wmf";
52
Daniel Hilgarth

FilterIndex ... DefaultExt est utilisé uniquement pendant une sauvegarde . Index est basé sur 1, donc si vous voulez choisir la 2ème option, alors:

dlg.FilterIndex = 2;
1
OSP