Hallo,
habe verschiedene Buttons mit dem Klick-Ereignissen =btnklick(x,False) und dem DoubleKlick Ereignis =btnklick(x,True)
Unterschieden nach dem 2. Parameter hab ich mal per debug.print die Eventauslösung protokolliert:
Private Function btnclick(ByVal num As Long, ByVal dblklick As Boolean)
If dblklick Then
Debug.Print "dblklick"
Else
Debug.Print "klick"
End If
End Function
Ergebnis im Direktfenster beim doppelt klicken:
klick
dblklick
klick
d.h. ein doubleklick löst auch immer ein klick-Event aus oder was?
Gruß Andreas
Hallo Andreas,
Zitatein doubleklick löst auch immer ein klick-Event aus
genau so....
Hallo,
fällt wohl unter die Rubrik "It's not a Bug it's a Feature"
Hab das jetzt mit einem Timer gelöst:
Private doubleclicked As Boolean
Private clickednumber As Long
Private Function btnclick(ByVal num As Long)
clickednumber = num
If Me.TimerInterval > 0 Then
Me.TimerInterval = 0
RaiseEvent ItemDoubleClicked(Me.NodeCaption, Me.NodeKey, Me.IsGroup)
doubleclicked = True
Else
If Not doubleclicked Then Me.TimerInterval = 150
doubleclicked = False
End If
End Function
Private Sub Form_Timer()
Dim strKeys() As String
Me.TimerInterval = 0
strKeys = Split(Me.NodeKey, "|")
If UBound(strKeys) = clickednumber Then 'auf richtiges Icon/Button geklickt
If Me.ChildrenCount > 0 Then
If Me.IsExpanded = True Then
CollapseNode Me.NodeKey
Else
ExpandNode Me.NodeKey
End If
End If
ElseIf clickednumber > UBound(strKeys) Then
Me.NodeSelected = IIf(IsNull(Me.NodeSelected), True, Not Me.NodeSelected)
RaiseEvent ItemClicked(Me.NodeCaption, Me.NodeKey, Me.IsGroup)
End If
End Sub
Was mich ärgert ist dass man damit den Form_Timer belegt, ich hätte den lieber frei für spätere Aufgaben.
Werde dann wohl API Timer nehmen müssen.
Gruß Andreas
Hallo,
naja, ist ja in den Spez. so definiert/beschrieben:
https://msdn.microsoft.com/de-de/library/office/ff822517.aspx
Zitat
.
.
.
Durch Doppelklicken auf ein Steuerelement treten die Ereignisse Click und DblClick auf. Wenn der Fokus beim Doppelklicken noch nicht auf das Steuerelement gesetzt ist, treten vor den Ereignissen Click und DblClick zunächst die Ereignisse Enter und GotFocus für das Steuerelement auf.
.
.
.