爱问知识人 爱问教育 医院库

vb中请帮我讲一下这个代码的意思!

首页

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的作用是什么?

提交回答
好评回答
  • 2018-04-01 10:32:36
    move谓词的格式是
    a.move left[,top[,width[,height]]] 要想写top属性必须有left属性,也就是说要想用[]里面的必须写全外面的
    第二个问题:乘以1.5什么用也没有,就是为了让控件不是到窗体最下面,而是距离半个控件高度那么高

    孙***

    2018-04-01 10:32:36

其他答案

    2018-04-01 06:32:36
  • 代码改为如下:
    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值

    张***

    2018-04-01 06:32:36

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 172-191
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):