主题:关于 Drive1使用,请这里高手帮忙.
lingk12008
[专家分:20] 发布于 2008-05-07 15:56:00
我是新手,刚刚在自学VB,关于 Drive1这个功能怎么使用?它是一个下拉菜单型,我要用这个程序做个实验,譬如:
先画一个 Drive1 和一个 Command1
选择 C: 按一下 Command1按扭对应的执行A.EXE文件
选择 D: 按一下 Command1按扭对应的执行B.EXE文件
选择 E: 按一下 Command1按扭对应的执行C.EXE文件
选择 F: 按一下 Command1按扭对应的执行D.EXE文件
...
这样的列子程序怎么写,如何来应用它?请这里的高手帮忙!谢谢了!
回复列表 (共9个回复)
沙发
一江秋水 [专家分:9680] 发布于 2008-05-07 17:26:00
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文件,如果选择不可执行的文件,会出错
板凳
lingk12008 [专家分:20] 发布于 2008-05-07 21:28:00
谢谢一江秋水老师的指导,我对Drive1与目录框(DirListBox)和文件列表框(FileListBox)联用经过实验也明白,这个实验就是当选择了盘符后,在某个文件夹中找到可执行的文件,然后用鼠标双击执行这个可执行的文件.又使我学到了知识!多谢!
那现在我题目如何解决呢?就是我选择盘符后,使用一个Command1按扭去执行每个不同盘符下的不同的执行文件.(也就是不用找文件,只要我选择好盘符后按一下按扭就可以执行指定的可执行文件了)
选择盘符 C: 按一下 Command1按扭对应的执行A.EXE文件
选择盘符 D: 按一下 Command1按扭对应的执行B.EXE文件
选择盘符 E: 按一下 Command1按扭对应的执行C.EXE文件
选择盘符 F: 按一下 Command1按扭对应的执行D.EXE文件
不知道可以不可以?
3 楼
lingk12008 [专家分:20] 发布于 2008-05-07 23:27:00
躺在床上一个多小时睡不着,我反复想着这个问题,仔细想想,要实现我这个功能,我想不能用Drive1这个控件吧?我想应该用Combo1下拉菜单控件来结合Command1按扭来完成吧?
选择盘符 C: 按一下 Command1按扭对应的执行A.EXE文件
选择盘符 D: 按一下 Command1按扭对应的执行B.EXE文件
选择盘符 E: 按一下 Command1按扭对应的执行C.EXE文件
选择盘符 F: 按一下 Command1按扭对应的执行D.EXE文件
4 楼
一江秋水 [专家分:9680] 发布于 2008-05-08 07:42:00
你想的完全正确!要实现你的愿望很简单:
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 楼
lingk12008 [专家分:20] 发布于 2008-05-08 15:36:00
谢谢你的帮助!
在你这个代码中好象有点不对
[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 楼
一江秋水 [专家分:9680] 发布于 2008-05-08 17:39:00
“上面红色部分应该是选择自己相应的选项后的显示吧?”,理解错误。这几句是往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 楼
lingk12008 [专家分:20] 发布于 2008-05-08 20:49:00
再次感谢你的热心帮助!这样是完全能达到的这个实验的目的,但在视觉上感觉不美观,如下图的红圆圈里所示:
[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 楼
一江秋水 [专家分:9680] 发布于 2008-05-09 07:14:00
当然可以:
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 楼
lingk12008 [专家分:20] 发布于 2008-05-09 19:59:00
多谢你的指导!
我来回复