我的前端有一个主窗体frmHub,包含一个连续形式的子窗体frmData。用户可以通过按住Shift键单击控件,在frmData上的文本框控件(txtType)中的值之间进行循环。 (只有3个可能的值。)
这一切都运行正常,但有时候Mouseup事件运行两次,我无法弄清楚原因。我必须使用mouseup而不是点击,才能拿起shift键。
知道如何解决这个问题,或者建议采取后续步骤?谷歌搜索已经显示了很多针对jquery和c#的点击,但没有针对Access的点击,这让我觉得我刚刚做了些傻事,但我仍然坚持要去哪里。
好的,在输入这个时我看到了一个模式:如果我按住Shift键点击相同的记录,它只会触发一次。如果我用点击更改记录,则会触发两次。这里发生了什么,或者,我能做些什么呢?
这是我的鼠标代码。 (Debug_Step()函数只是将指定的文本和当前日期时间写入表中,我在开发时使用它来捕获瓶颈。)
Private Sub txtType_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim Marker As Long
Marker = Debug_Step("Start txtType_MouseUp")
Dim CurrentType As String
Dim NewType As String
If Shift = 1 Then
CurrentType = Nz(Me.sType, "OFF")
Select Case Button
Case 1 'Left click demotes
Select Case CurrentType
Case "PBS"
NewType = "PER"
Case "PER"
NewType = "OFF"
Case "OFF"
NewType = "PBS"
Case Else
Exit Sub
End Select
Case 2 'Right click promotes
Select Case CurrentType
Case "PBS"
NewType = "OFF"
Case "PER"
NewType = "PBS"
Case "OFF"
NewType = "PER"
Case Else
Exit Sub
End Select
End Select
Call Apply_sType(Me.ident, NewType)
End If
Call Debug_Step("End txtType_MouseUp", Marker)
End Sub
编辑:我在Access 2010上; frmData使用链接的sql server表作为其记录源; frmHub使用passthrough查询。