vb中请帮我讲一下这个代码的意思!
Private Sub Timer1_Timer() Shape1.Move Shape1.Left, Shape1.Top + 100 * flag If Shape1.Top + 1.5 * Shape1.Height > Form1.Height Then flag = -1 ElseIf Shape1.Top < 0 Then flag = 1 End If End Sub 其中这两句Shape1.Move Shape1.Left, Shape1.Top + 100 * flag If Shape1.Top + 1.5 * Shape1.Height > Form1.Height Then 为什么向下运动还要用Shape1.Left,直接用Shape1.Top + 100 * flag怎么不行呢?还有,乘以1.5的作用是什么?
move谓词的格式是 a.move left[,top[,width[,height]]] 要想写top属性必须有left属性,也就是说要想用[]里面的必须写全外面的 第二个问题:乘以1.5什么用也没有,就是为了让控件不是到窗体最下面,而是距离半个控件高度那么高
代码改为如下: Option Explicit Dim flag As Boolean Private Sub Timer1_Timer() Shape1.Move Shape1.Left, Shape1.Top + 100 * flag If Shape1.Top + 1.5 * Shape1.Height > Form1.Height Then flag = -1 ElseIf Shape1.Top < 0 Then flag = 1 End If End Sub 不用Shape1.Left会向左运动,另外Shape1是向上运动,如向下 Shape1.Move Shape1.Left, Shape1.Top - 100 * flag 注意Shape1的初始Height值
答:因为他再也想不出要什么词语来形容了呀,那只好如此了啊。要进一步探讨,非常之复杂也。以后你会慢慢明白了。详情>>