问题描述:由于最近研究xml小工具,所以就涉及到了winfrom下的文件保存,但是在用到SaveFileDialog对象时,遇到以下问题,当我不设置FileName属性时, if (sfd.ShowDialog() != System.Windows.Forms.DialogResult.OK)可以过去,但是,当我设置了filename之后,就会一直等待录入信息,不知道该如何解决。求高手解答!
没看懂,SaveFileDialog 哪儿来的“等待录入信息”?
ShowDialog()之后,弹出文件目录窗口,弹窗之后,必须修改文件名才可以点击保存,否则点击保存不管用。
@别马卒: 其它的不说,你先告诉我你点击“保存”后,sfd.ShowDialog() 的返回值是多少?
@Launcher: 正如提问中的if语句,他的返回值是一个DialogResult对象。点击保存应该是DialogResult.OK
@别马卒: 我问你返回值是什么,没问你返回值不是什么。请你告诉我返回值究竟是什么?
@Launcher: debug后,点击保存按钮,无反应。点击取消时cancel
@别马卒: 你的意思是说点击“保存”后,保存文件对话框没有关闭吗?
@Launcher: 是的,只有输入新的文件名,再点击保存才会保存的,这个让我很头疼。
@别马卒: 目录下是否有同名文件?包括隐藏的。
@Launcher: 没有
@Launcher: 没有,因为每次的文件名一定会包含时间到秒。
@别马卒: 文件名是啥,给个看看。
@Launcher: sfd.FileName = "209_??????????_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xml";
@别马卒: 请问你这个文件名中的 “??????????” 是你的代码中就这样写的,还是说表示任意可用作路径的字符?
@Launcher: 代码中就这样写的,因为这一部分串号未知规则,需要人工修改
@别马卒: 既然需要人工修改,在没有修改前就不让保存,这有什么不对吗?
@Launcher: 是为了加快效率,这个文件保存之后,定位到文件,人工取修改文件名。
@别马卒: 那么我现在请你做一件事情,打开磁盘 D,右键选择“新建”-〉“文本文件”,然后修改文件名为:209_??????????_20140630162354.xml。
@Launcher: 我明白您的意思了,命名不符合规则,谢谢,看来这样写并不对。