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?
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 „Gefällt mir“
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