vb多张图片显示问题

bhbh202 2011-01-16 05:51:25
Const endc As Long = 30 '终止号
Const startc As Long = 1 '起始号 不能小于0

Static i As Long
If i = 0 Then i = startc
Image1.Picture = LoadPicture("C:\Program Files\照片\" & CStr(i) & ".jpg") '换图、照片保放路径
i = i + 1
If i > endc Then i = startc



以上代码读30张图片的,现在要求读N个图片,图片名与格式如下:1.JPG、2.JPG、。。。。。。。。。。。N个,按一下按钮读一张,再按下读第二张。
望老师们改改!谢谢!!!!
...全文
460 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
就是这么学过来的。俺也是
bhbh202 2011-01-16
  • 打赏
  • 举报
回复
最还是把InputBox界面放在Private Sub Form_Load()下创建数量,再Command1按一下出来1个换下第2个。。。。。。。。。
bhbh202 2011-01-16
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 yiguangqiang88 的回复:]
这位兄台真的要多学学了……
多练练吧
[/Quote]
我是刚刚自学的,还望你们热心人的帮助哦!
  • 打赏
  • 举报
回复
大家都是这么过来的……
  • 打赏
  • 举报
回复
这位兄台真的要多学学了……
多练练吧
bhbh202 2011-01-16
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 dbcontrols 的回复:]
dim endc as Long
endc =val(InputBox("请输入几数量的", "照片", ) )
Static i As Long
If i = 0 Then i = startc
Image1.Picture = LoadPicture("C:\Program Files\照片\" & CStr(i) & ".jpg") '换图、照片保放路径
……
[/Quote]
你这代码不对,用 Command1按一下InputBox界面出来一次,换一个图!
  • 打赏
  • 举报
回复
也可搞个限定。if endc <=10 then endc=10
if endc >=20 Then endc=20
dbcontrols 2011-01-16
  • 打赏
  • 举报
回复
如果输入的范围在10-20之间这样写
dim endc as Long
endc =val(InputBox("请输入几数量的", "照片", ) )
if endc <=10 or endc >=20 Then
Msgbox "您输入的数字不在10-20之间,将不做任何处理!"
Exit Sub
End If
dbcontrols 2011-01-16
  • 打赏
  • 举报
回复
如果输入的范围在10-20之间这样写
dim endc as Long
endc =val(InputBox("请输入几数量的", "照片", ) )
if endc <=10 or endc >=20 Then Exit Sub
bhbh202 2011-01-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 dbcontrols 的回复:]
Const endc As Long = 30 '终止号
改为
dim endc as Long
endc =N
[/Quote]
Private Sub Command1_Click()
Dim endc As Long

Const startc As Long = 1 '起始号 不能小于0

Static i As Long
If i = 0 Then i = startc
Image1.Picture = LoadPicture("C:\Program Files\您的产品\歌唱比赛数据库\选手号\" & CStr(i) & ".jpg") '换图

i = i + 1
endc = N
Image1.Enabled = False

End Sub
这段可以读N个,还有个问题用InputBox("请输入几数量的", "照片", )控制输入几数量要怎么写?再帮我想想!谢谢你!
  • 打赏
  • 举报
回复
人气少了……快过年了
dbcontrols 2011-01-16
  • 打赏
  • 举报
回复
dim endc as Long
endc =val(InputBox("请输入几数量的", "照片", ) )
Static i As Long
If i = 0 Then i = startc
Image1.Picture = LoadPicture("C:\Program Files\照片\" & CStr(i) & ".jpg") '换图、照片保放路径
i = i + 1
If i > endc Then i = startc
dbcontrols 2011-01-16
  • 打赏
  • 举报
回复
我陪楼主玩
dbcontrols 2011-01-16
  • 打赏
  • 举报
回复
dim endc as Long
endc =val(InputBox("请输入几数量的", "照片", ) )
cbm6666 2011-01-16
  • 打赏
  • 举报
回复
哈哈哈 还真是自打嘴巴 一会要求 常量表达式 一会用 InputBox 楼主慢慢玩....
bhbh202 2011-01-16
  • 打赏
  • 举报
回复
我的意思用InputBox("请输入几数量的", "照片", )

譬如:我有100张照片,这次运行程序需要48张,在InputBox里输入48,多余的不会出来,按钮点1次2、3、4、。。。48,依次在Image1里显示,再次运行程序需要70张,就可以调出来显示,操作一上面由于,但是Image1只有一个框(不是数组)。4楼的我不采纳,谢谢你的支持!
  • 打赏
  • 举报
回复
一定要常数表达式么?那么就只能“Const endc As Long = 60'终止号”了(60张图片)
否则可以"Public endc as long",然后在窗体的load事件中读取图片目录下图片个数,“endc=图片个数”即可。
cbm6666 2011-01-16
  • 打赏
  • 举报
回复
晕死......
要求常数表达式!自己改一下不就行了吗?

Dim AppDisk$, PicNo&
Const N As Long = 7
Private Sub Form_Load()
AppDisk = IIf(Right(App.Path, 1) = "\", App.Path, App.Path & "\") '本地路径app.path带入变量
Command1(0).Caption = "第一张"
Command1(1).Caption = "上一张"
Command1(2).Caption = "下一张"
Command1(3).Caption = "最后一张"
PicNo = 1 '初始宣告第一张图片的编号是 1
Command1_Click (0)
End Sub

Private Sub Command1_Click(Index As Integer)
Select Case Index
Case 0 '第一张
PicNo = 1
Case 1 '上一张
PicNo = IIf(PicNo - 1 < 1, N, PicNo - 1) '图片编号减1 如小于1则跳到最后一张
Case 2 '下一张
PicNo = IIf(PicNo + 1 > N, 1, PicNo + 1) '图片编号加1 如大于7则跳到第一张
Case 3 '最后一张
PicNo = N
End Select
If Dir(AppDisk & CStr(PicNo) & ".jpg") <> "" Then Image1.Picture = LoadPicture(AppDisk & CStr(PicNo) & ".jpg")
End Sub
dbcontrols 2011-01-16
  • 打赏
  • 举报
回复
Const endc As Long = 30 '终止号
改为
dim endc as Long
endc =N
bhbh202 2011-01-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dbcontrols 的回复:]
+1
就这么简单,你的代码已经接近目标


引用 3 楼 yiguangqiang88 的回复:
把30改为“N个的”N 就行了
[/Quote]
不可用啊!要求常数表达式!
加载更多回复(5)

7,763

社区成员

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

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