Несколько типов в фильтре SaveFileDialog - PullRequest
37 голосов
/ 14 апреля 2011

В моем 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. Если я меняю порядок фильтров, я всегда могу видеть только первый и последний.

Ответы [ 2 ]

55 голосов
/ 14 апреля 2011

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

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";
2 голосов
/ 09 февраля 2017

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

dlg.FilterIndex = 2;
...