以下所列程序的功能是:在窗体上有一个文本框控件,程序运行后,用户可以利用鼠标左键来拖动该文本框控件(注意:拖动时,文本框移动的距离和方向由鼠标指针移动的距离和方向来确定),按下鼠标右键则可以在文本框中显示出当前文本控件的位置。
Public yx As Integer
Public yy As Integer
Private Sub Form_ MouseMove(Button AS Integer,Shift As Integer,_
X As Single,Y As Single)
If Button=1 Then
Text1.Left= 【11】
Text1.Top= 【12】
End If
End Sub
Private Sub Form_ MouseDown (Button As Integer,Shift As Integer,_
X As Single,Y As Single)
If 【13】 Then
yx=Text1.Left-X
yy=Text1.Top-Y
End If
If Button=2 Then
Text1.Text=“X坐标:”+Str(Text1.Left)+“Y坐标:”+Str(Text1.Top)
End If
End Sub
参考答案:[11]X+yx [12]Y+yy [13]Button=1
解析: 在按下鼠标的时候,也即在Form_MouseDown事件过程中,首先应该要区分按下的是鼠标的左键还是右键,如果按下的是鼠标右键,则应该在文本框中显示当前文本框的位置,即当参数Button=2时,应该执行语句Text1.Text="X坐标:”+Str(Text1.Left)+"Y坐标:"+Str(Text1.Top)。因为题目要求文本框移动的距离和方向都由鼠标指针的移动距离和方向来确定,所以按下鼠标左键,在移动之前有必要记下当前文本框与鼠标指针间的相对距离(见语句yx=Text1.Left-X和yy=Text1.Top-Y),所以其前面的条件语句中的条件应该是参数Button=1。开始移动鼠标指针后,得到的X和Y的值都是当前鼠标指针所在的位置,要使得文本框相对于鼠标指针的位置不变,所以,应该给X和Y的值都加上在按下鼠标左键时鼠标指针与文本框的相对位置。