MouseMove和GotFocus事件发生冲突,如何调和
简单叙述:鼠标放在某Object1上,显示该Object1对应的数据库的值。按table键,光标转到下一个Object处,此时显示该光标Object处对应的数据库的值。
如果鼠标放在Object1上,按table键,则始终显示鼠标处Object1对应的数据库的值。而不再随着光标变动。怎么办???
问题大概出在, 鼠标放在某Object1上可以看做循环事件,如何通过程序按table键时跳出?如果给事件发生设个限制,那么一开始就无法触发此事件。。。很头疼
代码如下:
Private Sub txtValue_MouseMove
MouseOver = (0 <= X) And (X <= txtValue(Index).Width) And (0 <= Y) And (Y <= txtValue(Index).Height)
'判断当前鼠标位置是否在Object1上
If MouseOver Then
'假如鼠标在Object1上, 则利用SetCapture将每一个鼠标事件都传递给Object1
For i = 1 To 6
If adoMillingSel.Recordset.RecordCount > 0 Then
If adoMillingSel.Recordset.Fields(i) <> "" Then
StatusBar1.Panels(2 * i) = Format(adoMillingSel.Recordset.Fields(i).Value, "0.0")
SetCapture txtValue(Index).hwnd
Else
StatusBar1.Panels(10) = ""
SetCapture txtValue(Index).hwnd
End If
End If
Next i
Else
' 假如鼠标不在Object1上, 则利用ReleaseCapture释放鼠标捕捉
For i = 1 To 6
StatusBar1.Panels(2 * i) = ""
ReleaseCapture
Next i
End If
End Sub
Private Sub txtValue_GotFocus
For i = 1 To 6
If adoMillingSel.Recordset.RecordCount > 0 Then
If adoMillingSel.Recordset.Fields(i) <> "" Then
StatusBar1.Panels(2 * i) = Format(adoMillingSel.Recordset.Fields(i).Value, "0.0")
SetCapture txtValue(Index).hwnd
Else
StatusBar1.Panels(10) = ""
SetCapture txtValue(Index).hwnd
End If
End If
Next i
End Sub