c# - 尽管使用 Filter 选项,SaveFileDialog 不显示任何可能的扩展名

标签 c# winforms

我现在正在用 C# 创建一个应用程序,它在单击按钮时将数据保存到文件中。文件的名称和位置由用户定义,我希望程序自动为名称添加 .txt 扩展名,并在“将文件另存为”组合框中仅显示 1 个可能的扩展名。我有这段代码:

SaveFileDialog Dialog1 = new SaveFileDialog();
Dialog1.DefaultExt = "txt";
Dialog1.Filter = "Pliki tekstowe | *.txt";
Dialog1.AddExtension = true;

private void button1_Click(object sender, EventArgs e)
{
    if (Dialog1.ShowDialog() == DialogResult.OK)
    {
        System.IO.Stream fileStream = Dialog1.OpenFile();
        System.IO.StreamWriter sw = new System.IO.StreamWriter(fileStream);
        sw.WriteLine("Writing some text in the file.");
        sw.WriteLine("Some other line.");
        sw.Flush();
        sw.Close();
    }
    this.Close();
}

但每当我单击该按钮时,我在组合框中没有可供选择的选项,而且 .txt 扩展名也不会添加到文件名中,以防用户自己未指定扩展名。我知道我可以通过检查用户是否提供了正确的扩展名来以某种方式绕过它,以防他没有在名称中添加“.txt”,但我真的很想知道,为什么那段代码不起作用。有帮助吗?

最佳答案

问题是空间。只需将其更改为:

Dialog1.Filter = "Pliki tekstowe|*.txt";

你应该在做生意。

否则它会尝试匹配模式为 *.txt 的文件(与 *.txt 相比)——您可能没有。

关于c# - 尽管使用 Filter 选项,SaveFileDialog 不显示任何可能的扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21652395/

相关文章:

c# - 调用异步 Web 方法完成后如何导航?

c# - 将 ContextMenu 项的 "IsEnabled"绑定(bind)到按钮

c# - 如何获取两个地理坐标之间的所有点

c++ - OpenFileDialog:打开目录

c# - MS DI + MediatR : PipelineBehavior for a base IRequest with a generic response

c# - (.1f+.2f==.3f) != (.1f+.2f).Equals(.3f) 为什么?

c# - 如何检查自定义控件中枚举类型的属性值是否已更改?

c# - 无法编辑我的 C# DataGridView 中的任何列 - 有人知道为什么吗?

c# - 在更改之前获取值

winforms - 在 Windows Mobile 上关闭窗口 [X] 按钮而不是最小化