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

时间:2023-03-09 19:23:53
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属性后达不到过滤效果的原因之一

正常的运行效果为:

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

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