vb 请看我的这个多个控件移动问题

来源:百度知道 编辑:UC知道 时间:2024/05/01 14:29:22
我要用循环在过程中出现多个图片
Private Sub Timer1_Timer()
I = I - 1
Label2.Caption = I
If I = 0 Then I = 100
If I Mod 10 = 8 Then
J = 10 - I / 10
MsgBox J
Pic(J).Visible = True: Pic(J).Left = -1000: Pic(J).Top = 550
End If
End Sub
为什么只能出Pic(0)呢,当I=88,78,68..是应该出现Pic(1),Pic(2),为什么他们不出现呢?
我用Msgbox J来检测,J的确算出来了,但是Pic(J)就是不出现,为什么?
我的窗体的AutoDraw=True的。
Pic(0 to 9)都已经放在窗体上了,只是Visible=False.
I j K都是模块级变量
其次我真正的意图是使各个图片出现后移动
Dim I As Integer, J As Integer, K As Integer
Private Sub Form_Load()
Me.Width = Screen.Width
Me.AutoRedraw = True
Timer1.Interval = 1000
Timer2.Interval = 1000
Line1.X2 = Me.Width
I = 100
Me.Show
CurrentX = 3000: CurrentY = 550: Print "Δ"
CurrentX = 5000: CurrentY = 550: Print "Δ"
CurrentX = 9000: CurrentY = 550: Print "Δ"
CurrentX = 11000: CurrentY = 550: Print "Δ"
CurrentX = 13000: CurrentY = 550:

你这个Timer1里用的变量是不是窗口级变里呢?如果不是每次运行这个Private Sub Timer1_Timer() End Sub 变里都会被初如化,所以你的程序就只出现第一个Pic(0)

应该把I J在外面声明

问你个问题:你PIC显示的坐标都是一样的。
当第一个显示后,你怎么知道第二个的VISIBLE是真还是假的?

看看我的代码吧
Private I As Integer
Private J As Integer

Private Sub Form_Load()
I = 100
End Sub

Private Sub Timer1_Timer()
I = I - 1
Label2.Caption = I
If I = 0 Then I = 100
If I Mod 10 = 8 Then
J = 10 - I / 10
Text1.Text = Str(I) + ":" + Str(J)
pic(J).Visible = True: pic(J).Left = 0 + J * 100: pic(J).Top = 0 + J * 100
End If
End Sub