以下所列程序的功能是:在窗体上有一个文本框控件,程序运行后,用户可以利用鼠标左键来拖动该文本框控件(注意:拖动时,文本框移动的距离和方向由鼠标指针移动的距离和方向来确定),按下鼠标右键则可以在文本框中显示出当前文本控件的位置。 Public yx A

admin2009-02-13  32

问题 以下所列程序的功能是:在窗体上有一个文本框控件,程序运行后,用户可以利用鼠标左键来拖动该文本框控件(注意:拖动时,文本框移动的距离和方向由鼠标指针移动的距离和方向来确定),按下鼠标右键则可以在文本框中显示出当前文本控件的位置。
   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=【  】
      Text1.Top=【  】
   End If
   End Sub
   Private Sub Form_ MouseDown (Button As Integer,Shift As Integer,_
   X As Single,Y As Single)
   If【  】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

选项

答案X+yx , Y+yy , 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的值都加上在按下鼠标左键时鼠标指针与文本框的相对位置。
转载请注明原文地址:https://kaotiyun.com/show/572p777K
0

最新回复(0)