Несколько типов в фильтре SaveFileDialog

#c# #.net #savefiledialog

#c# #.net #savefiledialog

Вопрос:

В моем SaveFileDialog у меня есть несколько типов в фильтре, однако при просмотре диалогового окна, если я выбираю фильтр для просмотра файлов этого типа в каталоге, я могу видеть файлы только для первого и последнего фильтров.

     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);
    }
  

Я могу видеть файлы типа .bmp и .wmf
Если я изменю порядок фильтров, я всегда смогу увидеть только первый и последний.

Комментарии:

1. Попробуйте исключить пробел после *.gif и других. Фильтр очень требовательный.

Ответ №1:

Удалите пробелы после типа файла:

 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";
  

Комментарии:

1. хорошая иллюстрация

Ответ №2:

FilterIndex … DefaultExt используется только во время сохранения. Индекс основан на 1, поэтому, если вы хотите выбрать 2-й вариант, тогда:

 dlg.FilterIndex = 2;