commondialog的问题,答出给满分!

princesky 2003-09-22 01:16:32
要打开commondialog的初始路径为"c:\"。
在其他目录下选中文件后按确定,第二次再打开commondialog,打开的目录路径变为上一次文件所在的目录路径。
我要每次打开的初始路径都是"c:\",该怎么做?

我的代码如下:
CmnDlog.CancelError = True
CmnDlog.InitDir = "c:\"
CmnDlog.Flags = cdlOFNHideReadOnly
CmnDlog.FilterIndex = 2
CmnDlog.ShowOpen

每次都调用了CmnDlog.InitDir = "c:\",为什么目录还会变?
问题解决立即给分!!
...全文
104 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainstormmaster 2003-09-22
  • 打赏
  • 举报
回复
工程-引用-浏览,选择:C:\WINNT\system32\COMDLG32.OCX:

Option Explicit

Private Sub Command1_Click()
Dim Cmdlog As New CommonDialog
Cmdlog.InitDir = "c:\"
Cmdlog.ShowOpen
Debug.Print Cmdlog.FileName
Set Cmdlog = Nothing
End Sub
道素 2003-09-22
  • 打赏
  • 举报
回复
这是因为CmnDlog.FileName 的值,它默认先按照CmnDlog.FileName 的路径
你可以在open之前加一句

CmnDlog.FileName = ""
====================
CmnDlog.CancelError = True
CmnDlog.FileName = ""
CmnDlog.InitDir = "c:\"
CmnDlog.Flags = cdlOFNHideReadOnly
CmnDlog.FilterIndex = 2
CmnDlog.ShowOpen
yoki 2003-09-22
  • 打赏
  • 举报
回复
dstr_InitPath是怎么赋值的?
princesky 2003-09-22
  • 打赏
  • 举报
回复
yoki(小马哥) 厉害,问题解决了,多谢各位!
princesky 2003-09-22
  • 打赏
  • 举报
回复
我发现是我代码有问题:
CmnDlog.CancelError = True
CmnDlog.InitDir = dstr_InitPath
CmnDlog.Flags = cdlOFNHideReadOnly
CmnDlog.Filter = "(*.*)|*.*|" & _
"(*.TXT)|*.TXT|"
CmnDlog.FilterIndex = 2
CmnDlog.ShowOpen

不知道错哪了?
yoki 2003-09-22
  • 打赏
  • 举报
回复
在CmnDlog.InitDir = "c:\"后加一句
CmnDlog.FileName = ""
princesky 2003-09-22
  • 打赏
  • 举报
回复
默认路径如果是c:\的话,你在C:\temp\下选文件按确定,第二次打开commondialog是在C:\temp\下,而不是C:\。
snail2011 2003-09-22
  • 打赏
  • 举报
回复
我在我的机子上调试,怎么都是一样的啊!都是在C盘.
hdslah 2003-09-22
  • 打赏
  • 举报
回复
不會的呀﹐我每次都是設置的默認路徑﹐以下是我的Code,供參考﹕
Commondialog_All.CancelError = True
On Error GoTo Errorhandler

With Commondialog_All
.FileName = Head & ".xls"
.InitDir = "C:\"
.DefaultExt = "xls"
.DialogTitle = "Save As New Excel Spread"
.Filter = "MicroSoft Excel 活頁簿(*.xls)"
.ShowSave

End With
path = Commondialog_All.FileName
。。。。。。。。
。。。。。
沒問題
northwolves 2003-09-22
  • 打赏
  • 举报
回复
不会啊:

Private Sub Command1_Click()
Cmndlog.CancelError = True
Cmndlog.InitDir = "c:\"
Cmndlog.Flags = cdlOFNHideReadOnly
Cmndlog.FilterIndex = 2
Cmndlog.ShowOpen
MsgBox Cmndlog.FileName
End Sub

Private Sub Command2_Click()
Cmndlog.CancelError = True
Cmndlog.InitDir = "c:\"
Cmndlog.Flags = cdlOFNHideReadOnly
Cmndlog.FilterIndex = 2
Cmndlog.ShowOpen
MsgBox Cmndlog.FileName
End Sub
CrazyHosptial 2003-09-22
  • 打赏
  • 举报
回复
请说清楚详细一点...别乱...

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧