Click & Dbl_Click

Hallo Liebe Experten

Ich möchte ein Steuerelement mit zwei Funktionen belegen.
Die erste Funktion soll bei einem Click ausgeführt werden und die zweite bei einem DoubleClick.
Das Problem ist, sobald ich klicke wird die erste Funktion ausgeführt und ich habe nicht keine Möglichkeit mehr einen DoubleClick durchzuführen.
Wie könnte man das lösen?

Gruß Andreas

Hallo Andreas,

Ich möchte ein Steuerelement mit zwei Funktionen belegen.
Die erste Funktion soll bei einem Click ausgeführt werden und
die zweite bei einem DoubleClick.
Das Problem ist, sobald ich klicke wird die erste Funktion
ausgeführt und ich habe nicht keine Möglichkeit mehr einen
DoubleClick durchzuführen.
Wie könnte man das lösen?

Vorschlag:
im Klick-Ereignis einen Timer starten, eine Verzögerung einbauen …
Anders wird es nach meiner Meinung nicht gehen, sonst ist das Klickereignis schon fertig ausgeführt, bevor der Computer wissen kann, daß Du doppelt klicken möchtest.

Ich hab’ gerade mal eine Variante probiert, geht …

Option Explicit

Private Sub Form\_Load()
 Timer1.Interval = 200
 Timer1.Enabled = False
End Sub

Private Sub Picture1\_Click()
 Timer1.Enabled = True
End Sub

Private Sub Picture1\_DblClick()
 Timer1.Enabled = False
 Me.Caption = "Doublecklick"
End Sub

Private Sub Timer1\_Timer()
 Timer1.Enabled = False
 Me.Caption = "Click"
End Sub

Gruß, Rainer

Timer1.Interval = 200

Angabe in ms?

Timer1.Interval = 200

Angabe in ms?

Ja, Angabe in Millisekunden. Mir its gerade noch eingefallen, daß die Zeit nur eine Millisekunde länger sein muß, als die Einstellung für Doppelklick im Windows, aber ich weiß noch nicht, wie man den Wert findet, der steht vermutlich in der Registry.

Gruß, Rainer

Ja, Angabe in Millisekunden. Mir its gerade noch eingefallen,
daß die Zeit nur eine Millisekunde länger sein muß, als die
Einstellung für Doppelklick im Windows, aber ich weiß noch
nicht, wie man den Wert findet, der steht vermutlich in der
Registry.

Ist mir egal, funktioniert so schon super.
Danke
mfg Andreas

Hallo Andreas,

Ist mir egal, funktioniert so schon super.

anders geht’ aber auch auf fremden Computern zuverlässig. Hier die Lösung:

Option Explicit

Private Declare Function GetDoubleClickTime Lib "user32" () As Long

Private Sub Form\_Load()
 Timer1.Interval = GetDoubleClickTime() + 5
 Timer1.Enabled = True
End Sub

Gruß, Rainer

Ja, Angabe in Millisekunden. Mir its gerade noch eingefallen,
daß die Zeit nur eine Millisekunde länger sein muß, als die
Einstellung für Doppelklick im Windows, aber ich weiß noch
nicht, wie man den Wert findet, der steht vermutlich in der
Registry.

Hallo Rainer,
jain, je nach Win-Version auch in win.ini, schau hier:

http://groups.google.de/group/microsoft.public.vb.wi…

Gruß
Reinhard

1 Like

Hallo Reinhard,

jain, je nach Win-Version auch in win.ini, schau hier:

http://groups.google.de/group/microsoft.public.vb.wi…

thx, stimmt, ich vergesse immer Win9x.

Gruß, Rainer