窗体的左右两端各有1条直线,名称分别为Line1、Line2;名称为Shapel的圆靠在左边的Linel直线上(见图);另有1个名称为Timerl的计时器控件,其Enabled属性值是True。要求程序运行后,圆每秒向右移动100,当圆遇到Line2时则停

admin2016-06-30  25

问题 窗体的左右两端各有1条直线,名称分别为Line1、Line2;名称为Shapel的圆靠在左边的Linel直线上(见图);另有1个名称为Timerl的计时器控件,其Enabled属性值是True。要求程序运行后,圆每秒向右移动100,当圆遇到Line2时则停止移动。

    为实现上述功能,某人把计时器的Interval属性设置为1000,并编写了如下程序:
    Private Sub Timerl_Timer()
    For k=Linel.X1 To Line2.X1 Step 100
    If Shapel.Left+Shapel.Width<Line2.X1 Then
Shape1.Left=Shape1.Left+100
    End If
    Next k
    End Sub
    运行程序时发现圆立即移动到了右边的直线处,与题目要求的移动方式不符。为得到与题目要求相符的结果,下面修改方案中正确的是(    )。

选项 A、把计时器的Interval属性设置为1
B、把For k=Linel.X1 To Line2.X1 Step 100和Next k两行删除
C、把For k=Linel.X1 To Line2.Xl Step 100改为For k=Line.2.X1 To Linel.X1 Step 100
D、把If Shape1.Left+Shape1.Width<Line2.X1 Then改为If Shapel.Left<Line2.X1 Then

答案B

解析 在计时器事件中不应再设置步长为100的For循环,应该把For循环去掉,只留下循环体的语句,计时器每秒激发一次,每次判断小球是否移到Line2处,不到就改变自己的Left值即继续移动。因此B正确。
转载请注明原文地址:https://kaotiyun.com/show/reLp777K
0

最新回复(0)