C#记事本保存文件抛出System.ArgumentException错误求助
解决SaveFileDialog过滤字符串格式错误的问题
这个报错信息已经把问题说的很明白啦——你设置的SaveFileDialog的Filter字符串格式不符合要求!
问题根源
SaveFileDialog的Filter规则很明确:每个过滤选项必须遵循「描述文本|过滤模式」的格式,多个选项之间用竖线|分隔。你代码里的这一行:
sv.Filter="Text Document(*.txt)|*.txt|All Files(*.*)";
最后一个All Files(*.*)只写了描述文本,却漏掉了对应的过滤模式|*.*,这就导致系统无法识别这个过滤项,直接抛出了参数异常。
修正后的代码
把Filter字符串补全就能解决问题,修正后的完整代码如下:
SaveFileDialog sv = new SaveFileDialog(); sv.Filter="Text Document(*.txt)|*.txt|All Files(*.*)|*.*"; // 补全All Files对应的过滤模式 if (sv.ShowDialog() == DialogResult.OK) { richTextBox1.SaveFile(sv.FileName, RichTextBoxStreamType.PlainText); this.Text = sv.FileName; }
小优化提示
如果你想让保存类型的描述更易读,也可以给描述里加个空格,效果完全一致:
sv.Filter="Text Documents (*.txt)|*.txt|All Files (*.*)|*.*";
这样用户在选择保存格式时,界面上的文本会更清晰。
内容的提问来源于stack exchange,提问作者Zuriosmm
相关产品推荐
相关产品推荐

