代码之家  ›  专栏  ›  技术社区  ›  Ed Marty

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

  •  8
  • Ed Marty  · 技术社区  · 14 年前

    我有一个savefiledialog,可以选择用.foo或.bar类型保存。列表中默认选中的第一项是.foo。默认文件名为“无标题”,默认扩展名为“.foo”。当savefiledialog出现时,它将“无标题”放在“文件名”文本框中。我可以把它改成“untitled.foo”,但它仍然不能改变我的问题行为:

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

    4 回复  |  直到 11 年前
        1
  •  5
  •   BeemerGuy    14 年前

    预计起飞时间,
    我刚测试过,效果很好。
    我做到了:

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

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

        2
  •  2
  •   Community CDub    8 年前

    添加defaultext和addextension将为您提供所需的行为。此处提供的问题/答案类似: https://stackoverflow.com/a/1213353/101971

            var saveFileDialog = new SaveFileDialog
                                     {
                                         Filter = "Foo (*.foo)|*.foo|Bar (*.bar)|*.bar",
                                         DefaultExt = "foo",
                                         AddExtension = true
                                     };
    
        3
  •  0
  •   CodeMonkey1313    14 年前

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

        4
  •  0
  •   Ahmed Suror    11 年前

    你可以这样做: savefiledialog1.addextension=true