VB CommonDialog1问题.请指点啊.急

来源:百度知道 编辑:UC知道 时间:2024/05/29 02:08:25
怎么我调用CommonDialog1控件后.出现那个打开窗口.但用户选择了取消,程序还是会往下执行.我看了CommonDialog1.filename.原来他总会记住上次的值.怎么样捕获当用按了取消这个键??我想用户按取消程序就不执行.谢谢.
另外还有一个,CommonDialog1.Filter = "Microsoft Excel(*.xls)" 我用这个语句.但窗口里还是有非XLS的文件能看到.这个参数怎么不管用?谢谢.

文件类型过滤应当这么写:
CommonDialog1.Filter = "Microsoft Excel(*.xls) | *.xls"

但是在CommonDialog1.ShowDialog 之前加上 CommonDialog1.FileName=""
然后通过判断返回文件名是否为""的方法来判断用户是否点击了"取消"是不对的,因为用户没有输入文件名,点击"确定",返回的文件名也是""。
可以使用如下的方法:
把CommonDialog1的CancelError属性设置为
CommonDialog1.CancelError = True
这样用户点击了"取消"按钮后,将产生一个错误事件,然后使用VB的错误处理机制进行处理。
可以参考以下方法:
使用 On Error GoTo ErrProc: 当产生错误时,程序跳转到ErrProc段继续执行,这样你可以在ErrProc段写入你想执行的代码。
另外,用户点击取消后,产生的错误事件代码是 32755,在进行相应处理之前,可以先通过err.Number判断放回的错误码是不是 32755。

只要在 CommonDialog1.ShowDialog 之前加上 CommonDialog1.FileName=""就可以了
至于 CommonDialog1.Filter 应当这样写:
CommonDialog1.Filter = "Microsoft Excel(*.xls) | *.xls"