当用户更改SaveFileDialog中的另存为类型时更改文件扩展名

时间:2010-11-08 22:33:41

标签: c# .net-2.0 windows-xp

我有一个SaveFileDialog,可选择使用.foo或.bar类型保存。列表中的第一个项目(默认情况下已选中)为.foo。默认文件名为“无标题”,默认扩展名为“.foo”。出现SaveFileDialog时,它会在文件名文本框中添加“无标题”。我可以将其更改为“untitled.foo”,但它仍然不会改变与我的问题有关的行为:

如果用户切换到.bar,如何将文件名更改为untitled.bar?只有两个事件,这两个事件都不是我想要的,而且它似乎没有改变自己。

4 个答案:

答案 0 :(得分:5)

版,
我刚刚测试过,它的工作正常 我这样做了:

        SaveFileDialog sfd = new SaveFileDialog();

        sfd.FileName = "untitled";
        sfd.Filter = "Text (*.txt)|*.txt|Word Doc (*.doc)|*.doc";
        sfd.ShowDialog();

它会根据我选择的过滤器自动更改建议的保存名称 我使用的是.NET 2.0框架 但是我在Windows 7上,我觉得很重要,因为你看到了系统的文件保存对话框,它的实现方式就是重要的。

答案 1 :(得分:2)

添加DefaultExt和AddExtension将为您提供所需的行为。 Simialr在这里提出问题/答案: https://stackoverflow.com/a/1213353/101971

        var saveFileDialog = new SaveFileDialog
                                 {
                                     Filter = "Foo (*.foo)|*.foo|Bar (*.bar)|*.bar",
                                     DefaultExt = "foo",
                                     AddExtension = true
                                 };

答案 2 :(得分:0)

当您实际保存文件时,您可以从对话框中获取文件名,然后从那里执行必要的字符串操作。文件名是SaveFileDialog

实例的成员

答案 3 :(得分:0)

您可以这样做:     savefiledialog1.AddExtension = True