窗体上有一个名称为Line1的直线控件,并有如下程序: Dim down As Boolean, x1%, y1% Private Sub Form_Load() Line1.Visible = False down = False End

admin2020-02-27  22

问题 窗体上有一个名称为Line1的直线控件,并有如下程序:
Dim down As Boolean, x1%, y1%
Private Sub Form_Load()
    Line1.Visible = False
    down = False
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
        down = True
        x1 = X  : y1 = Y
    End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
        down = False
        Line1.x1 = x1 :  Line1.y1 = y1
        Line1.x2 = X  :  Line1.y2 = Y
        Line1.Visible = True
    End If
End Sub
运行程序,按下鼠标左键不放,移动鼠标到窗体其他位置处放开左键,则产生的结果是

选项 A、以鼠标按下和抬起的两点为端点显示一条直线
B、鼠标按下时显示一条直线;鼠标抬起时直线消失
C、直线从鼠标按下处移动到鼠标抬起处
D、鼠标按下时直线消失;鼠标抬起时显示直线

答案A

解析 如果光标移到某个位置,按下鼠标键,则产生MouseDown事件,松开鼠标键,产生MouseUp过程。对于两个键的鼠标来说,左键的Button参数值为1,右键的Button参数值为2,因此If  Button =1 条件语句保证只有按下左键或松开左键才能执行IF后面的语句。鼠标左键按下,执行Form_MouseDown过程中,x1,y1分别记录了鼠标按下的坐标;鼠标抬起,执行Form_MouseUp过程,直线起始点坐标为(x1,y1),结束点坐标为鼠标左键放开时的坐标(x2,y2),又直线Line1可见属性为true,故以鼠标按下和抬起的两点为端点显示一条直线,故选项A正确。
转载请注明原文地址:https://jikaoti.com/ti/Izx0FFFM
0

最新回复(0)