vb取消保存的问题

www.itzhe.cn/news/20071121/21306.html

出来是否保存文件的对话框后,假如没有保存过文件,取消就取消了,假如刚刚保存过,取消了,数据就会保存在刚刚保存的文件当中,怎么解决?
CommonDialog1.Filter = "文档文件(*.txt) ¦*.txt ¦所有文件(*.*) ¦*.* "
CommonDialog1.ShowSave
if len(commondialog1.Filter=0 then exit sub


网友回复:,取消了,数据就会保存在刚刚保存的文件当中,
-----------------
很明显,编码逻辑有问题,把代码贴出来看看
网友回复:在第二次调用保存对话框时,commondialog1.Filter默认值为上一次的,
你再用len(commondialog1.Filter=0来判定是否单击取消按钮就不行了

可以这样判定是否单击取消按钮

先设置 CommonDialog.CancelError = True
然后在点击“Cancel”时,就会产生32755 (cdlCancel) 号错误。
这样就可以判别用户是否点击“Cancel”的事件。
例:
Private Sub Command1_Click()
' 设置“CancelError”为 True
CommonDialog1.CancelError = True
On Error GoTo ErrHandler
' 设置标志
CommonDialog1.Flags = cdlOFNHideReadOnly
' 设置过滤器
CommonDialog1.Filter = "All Files (*.*) ¦*.* ¦Text Files " & _
"(*.txt) ¦*.txt ¦Batch Files (*.bat) ¦*.bat "
' 指定缺省的过滤器
CommonDialog1.FilterIndex = 2
' 显示“打开”对话框
CommonDialog1.ShowSave
' 显示选定文件的名字
MsgBox CommonDialog1.filename
Exit Sub

ErrHandler:
' 用户按了“取消”按钮
Exit Sub
End Sub
网友回复:想点取消按钮触发错误需要将CancelError属性设为False,否则就是继续执行下面的MsgBox语句。
网友回复:在你的代码前加CommonDialog1.filename= " "

网友回复:该回复于2007-11-08 16:13:40被治理员删除
网友回复: "在你的代码前加CommonDialog1.filename= " " "
这样会每次都要重复输入好多数字,增加工作量
有没更好点的,简单点的判定语句,按取消就取消了,什么都不做呢,也不一定要用到
if len(commondialog1.Filter=0 then exit sub
用其他什么语句更好呢

网友回复:把CommonDialog1.FileName的值赋给一变量,如WJM,保存的时候使用这个变量如xlbook.SaveAs wjm,然后,每次显示保存对话框时将这个变量清空WJM= " ",然后使用判定wjm是否为空。假如不是,保存,否则什么都不做。

If WJM <> " " Then
保存
End If

网友回复:if len(commondialog1.Filter=0 then exit sub

Filter判定,这样不可取
网友回复:谢谢各位的帮忙,问题已经解决,
变成
CommonDialog1.Filter = "文档文件(*.txt) |*.txt |所有文件(*.*) |*.* "
CommonDialog1.ShowSave
if len(commondialog1.Filter=0 then exit sub
if wjm = commondialog1.filename then exit sub
'wjm 自定义变量


就好了,总之,感谢各位的帮忙
本篇文章来源于 www.itzhe.cn IT者网站  原文链接:file:///C:/Documents%20and%20Settings/Administrator/桌面/vb取消保存的问题%20-%20IT者.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值