vb如何实现几个图象框的轮换显示在另一图片框中

我书上抄来一个程序:窗体拖出4个图像框image,一个时间控件tiemr.在前三个里各放一张图片,目的是程序运行后,三个图片轮流显示在第4个图像框中形成动画效果。我的程序... 我书上抄来一个程序:窗体拖出4个图像框image,一个时间控件tiemr.在前三个里各放一张图片,目的是程序运行后,三个图片轮流显示在第4个图像框中形成动画效果。我的程序抄的没错,可是结果只能显示第一幅。请指教。
另外其中的“flag”是什么意思?
Private Sub Timer1_Timer()
If (flag - 3) = 0 Then
flag = 0
Else

If flag = 0 Then
Image4.Picture = Image1.Picture
ElseIf flag = 1 Then
Image4.Picture = Image2.Picture
ElseIf flag = 2 Then
Image4.Picture = Image3.Picture
End If
flag = flag + 1
End If

End Sub
展开
 我来答
samge_tang
2011-04-14
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
你对变量的作用域没理解好 这个flag是局部变量 只在一次调用时有效 每次调用都是0 当然只显示第一幅
请在程序开头加上 option explicit on ,再在timer1_timer外显式申明flag ,dim flag as integer = 0
flag起到计数作用,依次显示每幅图片
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cjn20090821
2011-04-14 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:80
采纳率:0%
帮助的人:66.3万
展开全部
给你个代码
要在TIMER1的属性里将Interval的值设为:1000(表示一秒钟显示一次)

Dim flag As Integer‘全局变量

Private Sub Form_Load()
flag = Int(Val(Timer1.Interval / 1000))’在表单的LOAD事件里取值
End Sub

Private Sub Timer1_Timer()‘在这里调用就可以了
If (flag - 3) = 0 Then
flag = 0
Else

If flag = 0 Then
Image4.Picture = Image1.Picture
ElseIf flag = 1 Then
Image4.Picture = Image2.Picture
ElseIf flag = 2 Then
Image4.Picture = Image3.Picture
End If
flag = flag + 1
End If

End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hlq2p
2011-04-14 · TA获得超过466个赞
知道小有建树答主
回答量:495
采纳率:44%
帮助的人:57.1万
展开全部
flag 变量没声明,你在代码最上面加个
Dim flag As Integer
flag在这里起了个标志的作用。对了,,你还要把你Timer1属性中Interval写个值上去,表示多少毫秒切换一次,1000就是1秒。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式