问一个vb的问题,请懂vb的人都进来看一下!

来源:百度知道 编辑:UC知道 时间:2024/05/14 13:17:56
用vb编制了这样一个程序用来打开文件
以下是原代码
Dim setfilename As String
——————————————————————
Private Sub Command1_Click()
RetVal = Shell(setfilename, 1)
End Sub
———————————————————————
Private Sub Command2_Click()
End
End Sub
———————————————————————
Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
———————————————————————
Private Sub Dir1_Click()
Text1.Text = File1.Path
End Sub
———————————————————————
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
———————————————————————
Private Sub Exit_Click()
End
End Sub
———————————————————————
Private Sub File1_Click()
setfilename = File1.Path & "\" & File1.FileName
Text1.Text = File1.Path & "\" & File1.FileName
End Sub
———————————————————————
Private Sub File1_DblClick()
RetVal = Shell(setfilename, 1)
End Sub

为什么当文件直接在硬盘下时(如:文件路径是F:&#

你的问题出在这个代码上:
Private Sub File1_Click()
setfilename = File1.Path & "\" & File1.FileName
Text1.Text = File1.Path & "\" & File1.FileName
End Sub

file1.path
如果是根目录的话是X:\这个形式
如果是文件夹的话是X:\F这个形式

所以
File1.Path & "\" & File1.FileName
File1.Path & "\" & File1.FileName
这个里的"\"这个不合适
应该先判断File1.Path的最右面是不是"\",如果是,就不加"\",如果不是就加"\"。
代码如下:
IIf(right(File1.Path,1)="\",File1.Path,File1.Path & "\") & File1.FileName

这样写就可以了。然后再赋值就可以了。

逻辑混乱啊

而起,很多都是多余的代码,搞这么多事件干么?

你把这些加上,,试试
dim dd as string
dd=app.path
if right(dd,1)<>"\" then
dd= dd & "\"
end if
就是说先判断一下有没有 "\" 没有的话再加
有的话就直接过了,不用加