Savedialog предложил имена файлов для соответствия фильтру расширений

Когда моя программа отображает SaveDialog для сохранения файла, я могу использовать свойства Filter и Filter Index, чтобы ограничить отображаемые файлы определенными расширениями. Кроме того, когда я устанавливаю свойство DefaultExt, тогда, когда пользователь вводит имя файла, соответствующие файлы в папке отображаются в виде предложений в раскрывающемся списке, и один из них можно выбрать с помощью мыши. Например, если для фильтра установлено значение «* .xml», в диалоговом списке файлов отображаются только имена файлов, соответствующие этому расширению. Но если пользователь наберет «Тест», вы получите раскрывающийся список файлов предложений, например: TestA.doc TestB.xml Test123.pdf TestX.xml (если эти файлы присутствуют в папке)

Но я бы хотел, чтобы список предложений содержал только файлы, соответствующие фильтру, например * .xml. Это возможно? Проблема в том, что пользователи могут ошибиться предложением и сохранить файл с неправильным расширением.

Нет. Вы можете прочитать исчерпывающее объяснение того, что вы можете делать с этим диалогом здесь.

Sertac Akyuz 10.08.2018 16:43
2
1
164
1

Ответы 1

TSaveDialog внутренне использует интерфейс IFileDialog Windows. Этот интерфейс не предлагает никакого способа изменить способ фильтрации файлов в раскрывающемся текстовом поле предложения в поле «Имя файла».

Ты можешь :

  • Реализовать собственный диалог с нуля
  • Используйте компонент, такой как DexExpress, который не является бесплатным
  • Проверьте результат диалога сохранения после его выполнения и подтвердите файл выбора пользователя и покажите пользователю правильное сообщение, если файл недействителен.

Другие вопросы по теме