乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 41|回复: 6

[编程交流] frmCommonDialog-取消

[复制链接]

5

主题

13

帖子

8

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 11:43:17 | 显示全部楼层 |阅读模式
如果文件被选中并位于文件名文本框中,则无论您选择“确定”还是“取消”,名称仍然基于我的代码。
 
单击“确定”或“取消”并不重要,重要的是文件名框中是否有任何内容。
 
有办法吗?
或者我需要以某种方式读取click事件来测试是否单击了“OK”或“Cancel”?
我该怎么做?
 
谢谢你的帮助,
 
凯文
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 12:02:16 | 显示全部楼层
发布代码摘录以进行调试将非常有用。
 
但是,以下代码在我的工作站上正常工作:
 
  1. CommonDialog1.FileName = "C:\MyTestFile.txt"
  2. CommonDialog1.Filter = "Text Files (*.TXT) |*.txt" & "|All Files (*.*)|*.*"
  3. CommonDialog1.FilterIndex = 1
  4. CommonDialog1.DialogTitle = "Select a file "
  5. CommonDialog1.ShowOpen
  6. MsgBox CommonDialog1.FileName

 
当做
回复

使用道具 举报

5

主题

13

帖子

8

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 12:08:28 | 显示全部楼层
AC2设计,我爱你!!!
回复

使用道具 举报

1

主题

10

帖子

9

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 12:17:55 | 显示全部楼层
试试这个:
  1. Sub OpenFile()
  2.    On Error GoTo errHan
  3.    ' Your code
  4.    '
  5.    '
  6.    '
  7.    Exit
  8. errHan:
  9.    If Err.Number = 32755 Then    'Cancel
  10.        Unload Me
  11.    ElseIf Err.Number = 75 Then
  12.        MsgBox "File " & fName & " is open"
  13.        Unload Me
  14.    End If
  15. End Sub
回复

使用道具 举报

5

主题

13

帖子

8

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 12:29:25 | 显示全部楼层
我想我对我最初的帖子不是很清楚。
我的代码运行良好,没有任何错误。
问题是当提示输入文件名时,无法取消。
 
前任。
当我在commomdialog中单击“取消”时,如果文件名文本框中有文件名,文件名仍会传递给
commondialog1。文件名
 
我想我需要的是一种方法来确定我点击哪个按钮,“确定”或“取消”
 
这可能吗?
 
凯文
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 12:39:57 | 显示全部楼层
根据您的帖子和签名,我假设您正在使用VBA(AutoCAD 2008不支持VSTA)。因此,我提出的示例基于VBA,在我的第一篇文章中可能不够清楚。
 
那么,你用什么组件来打开盒子呢?应为“Microsoft Common Dialog Control 6.0”。
 
在新表单上添加两个按钮和一个CommonDialog控件,并粘贴下面的代码。
 
  1. Private Sub CommandButton1_Click()
  2.    Dim SelectedFile As String
  3.    CommonDialog1.FileName = "C:\MyTestFile.txt"
  4.    CommonDialog1.ShowOpen
  5.    [color=red]SelectedFile = CommonDialog1.FileName
  6. [/color]    MsgBox SelectedFile
  7. End Sub
  8. Private Sub CommandButton2_Click()
  9.    Dim SelectedFile As String
  10.    CommonDialog1.FileName = "C:\MyTestFile.txt"
  11.    [color=red]SelectedFile = CommonDialog1.FileName[/color]
  12.    CommonDialog1.ShowOpen
  13.    MsgBox SelectedFile
  14. End Sub

 
正如您所见,这取决于您在代码中的什么位置获得文件名;第一种方法是正确的(我不是说它是唯一的方法),应该可以解决您的问题。
 
当做
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 12:45:57 | 显示全部楼层
 
关于@goran的建议,即使您没有代码错误(错误),也可以方便地使用错误处理程序——有时可能会故意导致错误,只是为了测试它并相应地采取行动;这是一种非常常见的编程实践(即尝试/除了编码)。
只有一条注释,在CommonDialog的对话框中,默认情况下取消使用不会引发错误,因此需要使用以下命令显式强制执行:
 
  1. CommonDialog1.CancelError = True

 
当做
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-5 11:03 , Processed in 0.373965 second(s), 66 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表