我有一个SaveFileDialog,可选择使用.foo或.bar类型保存。列表中的第一个项目(默认情况下已选中)为.foo。默认文件名为“无标题”,默认扩展名为“.foo”。出现SaveFileDialog时,它会在文件名文本框中添加“无标题”。我可以将其更改为“untitled.foo”,但它仍然不会改变与我的问题有关的行为:
如果用户切换到.bar,如何将文件名更改为untitled.bar?只有两个事件,这两个事件都不是我想要的,而且它似乎没有改变自己。
答案 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