回 帖 发 新 帖 刷新版面

主题:关于 Drive1使用,请这里高手帮忙.

我是新手,刚刚在自学VB,关于 Drive1这个功能怎么使用?它是一个下拉菜单型,我要用这个程序做个实验,譬如:

先画一个 Drive1 和一个 Command1


选择 C:        按一下 Command1按扭对应的执行A.EXE文件

选择 D:        按一下 Command1按扭对应的执行B.EXE文件

选择 E:        按一下 Command1按扭对应的执行C.EXE文件

选择 F:        按一下 Command1按扭对应的执行D.EXE文件

...


这样的列子程序怎么写,如何来应用它?请这里的高手帮忙!谢谢了!

回复列表 (共9个回复)

沙发

Drive1主要是显示盘符,最好与目录框(DirListBox)和文件列表框(FileListBox)联用,代码如下:

Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub

Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub

Private Sub File1_Click()
Shell Dir1.Path & "\" & File1.FileName
End Sub

不需要按纽了,但注意File1_Click过程中的Shell函数只能执行exe文件,如果选择不可执行的文件,会出错

板凳

谢谢一江秋水老师的指导,我对Drive1与目录框(DirListBox)和文件列表框(FileListBox)联用经过实验也明白,这个实验就是当选择了盘符后,在某个文件夹中找到可执行的文件,然后用鼠标双击执行这个可执行的文件.又使我学到了知识!多谢!

那现在我题目如何解决呢?就是我选择盘符后,使用一个Command1按扭去执行每个不同盘符下的不同的执行文件.(也就是不用找文件,只要我选择好盘符后按一下按扭就可以执行指定的可执行文件了)

选择盘符 C:        按一下 Command1按扭对应的执行A.EXE文件

选择盘符 D:        按一下 Command1按扭对应的执行B.EXE文件

选择盘符 E:        按一下 Command1按扭对应的执行C.EXE文件

选择盘符 F:        按一下 Command1按扭对应的执行D.EXE文件

不知道可以不可以?

3 楼

躺在床上一个多小时睡不着,我反复想着这个问题,仔细想想,要实现我这个功能,我想不能用Drive1这个控件吧?我想应该用Combo1下拉菜单控件来结合Command1按扭来完成吧?
选择盘符 C:        按一下 Command1按扭对应的执行A.EXE文件

选择盘符 D:        按一下 Command1按扭对应的执行B.EXE文件

选择盘符 E:        按一下 Command1按扭对应的执行C.EXE文件

选择盘符 F:        按一下 Command1按扭对应的执行D.EXE文件

4 楼

你想的完全正确!要实现你的愿望很简单:

Private Sub Command1_Click()
Shell Combo1.Text & ".exe" '这一句可能有必要加上路径
End Sub

Private Sub Form_Load()
Combo1.AddItem "A"
Combo1.AddItem "B"
Combo1.AddItem "C"
Combo1.AddItem "D"
Combo1.Text = "A"
End Sub

5 楼

谢谢你的帮助!
在你这个代码中好象有点不对

[color=FF0000]Private Sub Form_Load()
Combo1.AddItem "A"
Combo1.AddItem "B"
Combo1.AddItem "C"
Combo1.AddItem "D"[/color]
[color=008000]Combo1.Text = "A"[/color]
[color=FF0000]End Sub[/color]

上面红色部分应该是选择自己相应的选项后的显示吧?,而绿色表示这一行是让它默认显示第一个选项吧?

Private Sub Command1_Click()
Shell Combo1.Text & ".exe" '这一句可能有必要加上路径
End Sub

上面这些黑色的表示,是Command1按扭触发后执行的程序吧?
那我是要与Private Sub Form_Load()结合,选择相应选项,来执行*.EXE文件,这个程序是多选项,所以根据需要,要执行多个不同的*.EXE,而Shell Combo1.Text & ".exe"
这一句怎么添加多个(A.EXE B.EXE C.EXE D.EXE)可执行文件呢?好象不能实现的愿望!

6 楼

“上面红色部分应该是选择自己相应的选项后的显示吧?”,理解错误。这几句是往Combo1中添加项目,如果没有这几句,运行后的Combo1将会是一片空白。
“而绿色表示这一行是让它默认显示第一个选项”,正确。
“上面这些黑色的表示,是Command1按扭触发后执行的程序”,正确。
你可以按照 Combo1.AddItem ***** 的句式,把你所有准备执行的程序文件名添加进去,例如:

Combo1.AddItem "A.exe"
Combo1.AddItem "B.exe"
Combo1.AddItem "C.exe"
Combo1.AddItem "D.exe"
Combo1.Text = "A.exe"

上面的语句最好加上路径,如:

Combo1.AddItem APP.PATH & "\A.exe" 

这是用的相对路径,你用绝对路径也行,如:

Combo1.AddItem "D:\A.exe"
Combo1.AddItem "E:\B.exe"
....

这样的话,Shell Combo1.Text & ".exe" 这一句就要修改为 Shell Combo1.Text 
另外,Shell 函数每次只能执行一个程序,无法添加多个(A.EXE B.EXE C.EXE D.EXE)可执行文件

7 楼

再次感谢你的热心帮助!这样是完全能达到的这个实验的目的,但在视觉上感觉不美观,如下图的红圆圈里所示:

[img]http://www.dybit.com/temp/vb.jpg[/img]

在下拉框里总是显示路径和可执行文件的文件名,有些不美观!能不能让它不显示路径和可执行文件名.
假如我这三个:A.EXE B.EXE C.EXE 文件分别取三个不同的名字
     分别为:A.EXE 取名为:计算机
            B.EXE 取名为:小游戏
            C.EXE 取名为:我的书籍

而让下拉菜单里也分别显示为: 计算机  小游戏  我的书籍
而当程序被选择运行时,且相应运行:A.EXE B.EXE C.EXE
这样不是美观多了吗?
不知这样是否可以?

8 楼

当然可以:

Private Sub Form_Load()
Combo1.AddItem "计算机"
Combo1.AddItem "小游戏"
Combo1.AddItem "我的书籍"
....
End Sub

Private Sub Command1_Click()
Dim fName as string
Select Case Combo1.Text
  case "计算机": fName="D:\A.exe"
  case "小游戏": fName="E:\B.exe"
  case "我的书籍": fName="F;\C.exe"
  .....
End Select
Shell fName
End Sub

9 楼

多谢你的指导!

我来回复

您尚未登录,请登录后再回复。点此登录或注册