LoadPicture出错,大家来看看!

F_4_ 2004-11-21 05:14:44
我编了2个窗体,frmFile和frmPic
'=================frmfile================
......
Private Sub cmdOK_Click()
If File1.ListCount = 0 Then
i = 0
Else
i = 1
End If
frmPic.File1.Path = frmFile.File1.Path
frmPic.txt3.Text = "当前文件夹:" & Dir1.Path
frmPic.txt2.Text = "共 " & File1.ListCount & " 张," & "第 " & i & " 张"
Unload Me
End Sub

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

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

'=================frmPic======================
'加载图片
Private Sub File1_Click()
Dim i As Integer
i = File1.ListIndex + 1
txt2.Text = "共 " & File1.ListCount & " 张," & "第 " & i & " 张"
Pic.Picture = LoadPicture(frmFile.Dir1.Path & "\" & File1.List(File1.ListIndex))
'Pic.Picture = LoadPicture("")
End Sub

上面的这段程序在第一次加载的时候,能正确显示图片,如“d:\...\1.gif”
第二次加载的时候,显示错误,说什么“d:\...\2.gif”不能打开
而我第二次加载的明明是其他路径下的2.gif,也就是路径还是第一次的,怎么回事啊?

还有,FileListBox每次打开程序都显示当前路径下的图片,怎么让他第一次启动的时候,不显示呢?
...全文
269 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
F_4_ 2004-11-22
  • 打赏
  • 举报
回复
To:lujianyu1189()
......
iif(right(dir1.path,1) = "\","","\")+你的路径

F_4_ 2004-11-22
  • 打赏
  • 举报
回复
问题已解决,确实是songyaowu(韧恒) 所说的那样,在OK_Click()里,Unload Me把窗体卸了之前传了路径,所以这时的路径传递正确;卸了后路径不变了,所以另一个窗体老加载不了。
结贴了,谢谢各位大哥的帮助。
韧恒 2004-11-22
  • 打赏
  • 举报
回复
你的程序的确有问题的。如果不改变你编程的思路,仅修改其中的错误,你将'=================frmfile================
......
Private Sub cmdOK_Click()
.....
frmPic.txt2.Text = "共 " & File1.ListCount & " 张," & "第 " & i & " 张"
Unload Me
End Sub
中的Unload me改为me.hide即可。因为当你卸载了窗口后,再从另一个窗口访问它的控件时,其值又被初始化了。因此你不可以卸载它,只需隐藏即可。在程序全部结束后再卸载它。

你试试,一定可以的。
lujianyu1189 2004-11-22
  • 打赏
  • 举报
回复
借问一下:
--------------------------------------------------
“如果是选择根目录下的文件,你的程序就错了.
比如选择"C:\ABC.JPG"
你的程序就会得到"C:\\ABC.JPG"”
--------------------------------------------------
如何在选择根目录时,不会出现"\\"呀?
text1.text=dir1.path & "\"
这样的话,如果是根目录就会出现两个“\”,如何解决呀?
F_4_ 2004-11-22
  • 打赏
  • 举报
回复
楼上的意思就是我想说的,不知道怎么回事。感觉VB在易用性上比其他语言还是挺强的,就是感觉VB编程都是调用API/ActiveX控件,操作上比较机械,一般错误也挺怪的。都是什么函数调用,属性设置出的错,感觉就是被MS牵着鼻子走,胸闷啊~~~~~
tztz520 2004-11-22
  • 打赏
  • 举报
回复
你先用最简单的代码测试一下.(新建一个工程来测试)

Private Sub Command1_Click()
Pic.Picture = LoadPicture(frmFile.Dir1.Path & "\" & File1.List(File1.ListIndex))
End Sub

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

Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
qidaozhilong 2004-11-22
  • 打赏
  • 举报
回复
程序在选择任何路径下的文件时,都能在FileListBox里显示图片文件,无论是什么目录。可我触发FileListBox的click事件时,想在PictureBox里显示的时候,只有一种情况是成功的:就是在一个特定的路径下,此路径恰恰是我程序启动时候的路径。而其他路径下的图片就不能在PictureBox里加载,显示错误“53”。
tztz520 2004-11-22
  • 打赏
  • 举报
回复
如果是选择根目录下的文件,你的程序就错了.
比如选择"C:\ABC.JPG"
你的程序就会得到"C:\\ABC.JPG"
qidaozhilong 2004-11-22
  • 打赏
  • 举报
回复
不是“//”或图片的问题。
问题已找到,就是不知道怎么处理。
我单步跟踪过了,每次启动程序,在fileFile窗体选择好盘符和文件夹后,cmdOK事件,在另一窗体frmPic里txt3.text能正确显示“当前文件夹:盘符:/路径”。
可当我在frmPic的FileListBox里的图片文件选择时(File1_click()),系统报错,错误‘53’,文件:“盘符:/路径/*.gif不存在”。而此时的路径和盘符并未改变,还是我第一次的盘符和路径。
LoadPicture()我也查了好几次手册,应该没什么错。
奇怪的是,为什么第一次的cmdOK能把路径传过来显示;第二次,选择图片显示的时候,路径就变不了了呢?还有,程序启动的时候总显示当前路径下的图片。(patten属性为"*.bmp;*.jpg;*.gif")
难道是PictureBox的某项属性没设置正确?
guoxu_009 2004-11-22
  • 打赏
  • 举报
回复
UP.........
Abyss-Xu 2004-11-22
  • 打赏
  • 举报
回复
up
tztz520 2004-11-22
  • 打赏
  • 举报
回复
应该不是图片的问题,是路径的问题.有可能是根目录下的路径会有"\\"出现.

楼主可以将要装入的图片的路径打印出来看一下.
debug.print frmFile.Dir1.Path & "\" & File1.List(File1.ListIndex)

看一下上面打印出什么来
of123 2004-11-22
  • 打赏
  • 举报
回复
Dim i As Integer 放到通用段。否则每次在过程中重建,初始值都是 0,加 1 之后永远是 1。
wenhongL 2004-11-22
  • 打赏
  • 举报
回复
frmFile.Dir1.Path & "\" &frmFile. File1.List(frmFile.File1.ListIndex)
应该是上面那样吧
wenhongL 2004-11-22
  • 打赏
  • 举报
回复
不是GIF的问题,我在一个窗体调试完全没有问题!
wenhongL 2004-11-22
  • 打赏
  • 举报
回复
1\ Pic.Picture = LoadPicture(frmFile.Dir1.Path & "\" & File1.List(File1.ListIndex))
这样加载没有问题,是不是GIF的问题?是路徑不對??
Andy__Huang 2004-11-22
  • 打赏
  • 举报
回复
1.可能是路徑不對的﹐你單步跟蹤一下就知道了

2.你換用另外一個控件試一試﹐用ImageBox控件
aohan 2004-11-22
  • 打赏
  • 举报
回复
跟踪一下看路径中是否出现了非法字符,如\\等
F_4_ 2004-11-22
  • 打赏
  • 举报
回复
高手快来看看呀,急死我了,人命关天啊。分不够,你跟我说,我可以给你!!!
F_4_ 2004-11-22
  • 打赏
  • 举报
回复
怎么没人帮帮忙呢?

7,763

社区成员

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

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