C# openfiledialog设置filter属性后达不到过滤效果的原因之一

此处用RichTextBox控件举例>>>

在窗体对应的类中处理Load事件可以为openfiledialog设置Filter的属性:

private void Form1_Load(object sender, EventArgs e)
        {
            openFileDialog1.FileName = "";
            openFileDialog1.InitialDirectory = @"E:\";
            openFileDialog1.Filter = "文本文件 | *.txt| RTF 文件 | *.rtf| 所有文件 | *.*";
            openFileDialog1.FilterIndex = 2;
            saveFileDialog1.FileName = Convert.ToString(DateTime.Now.Ticks); //给保存文件设定一个默认文件名
            saveFileDialog1.Filter = "文本文件 | *.txt| RTF 文件 | *.rtf| 所有文件 | *.*" ;
            saveFileDialog1.FilterIndex = 2;
        }

如果无意间将上面一行代码写成这样:

            openFileDialog1.Filter = "文本文件 | *.txt | RTF 文件 | *.rtf | 所有文件 | *.*";

            saveFileDialog1.Filter = "文本文件 | *.txt | RTF 文件 | *.rtf | 所有文件 | *.*" ;
初看这两行代码和上面的没有区别,仔细观察会发现“*.txt”和“*.rtf”后面都多了一个空格,虽然只是多了一个空格,但是过滤属性Filter会变成

C# openfiledialog设置filter属性后达不到过滤效果的原因之一_第1张图片


正常的运行效果为:

C# openfiledialog设置filter属性后达不到过滤效果的原因之一_第2张图片


对比两幅图的过滤选项框处会发现明显的不同之处。




你可能感兴趣的:(C#)