Dreifacher Mausklick in C #?

8

In MS-Word Mausklick-Ereignisse werden wie folgt verwendet:

  

Einfacher Klick - Platzierung des Cursors
  Doppelklick - Wählt Word
  Dreifachklick - Wählt Absatz

In C # kann ich einfache und doppelte Mausklick-Ereignisse verarbeiten, aber ich möchte ein Triple Mouse Click -Ereignis in C # Windows TextBox behandeln.

Beispiel:

%Vor%     
Javed Akram 16.02.2011, 09:43
quelle

4 Antworten

7

Sehen Sie sich das an: Mousebuttoneventargs.clickcount

Das sollte es abdecken, nehme ich an.

    
Abuh 16.02.2011, 09:50
quelle
2

Sie müssen nur die Zeit speichern, wenn in dieser Box ein Doppelklick erfolgte. Überprüfen Sie dann im Handler für den einzelnen Klick, ob ein Doppelklick vor mehr als N Millisekunden stattgefunden hat (N = 300 oder so).

Rufen Sie in diesem Fall Ihre Funktion TripleClick () direkt auf oder definieren Sie ein neues Ereignis für die abgeleitete "TripleClickAwareTextBox".

    
TToni 16.02.2011 09:48
quelle
2

Ich habe an einem ähnlichen Problem in C ++ gearbeitet

Zuerst müssen Sie verstehen, wie die Ereignisse ausgelöst werden, ich nehme einen Klick mit der linken Maustaste: - Klicken Sie einmal - & gt; Klick-Ereignis der linken Maustaste ausgelöst - Doppelklick - & gt; Linkes Doppelklick-Ereignis ausgelöst

Windows unterstützt Sie nur bis zu dieser Ebene.

Bei einem Dreifachklick ist es im Wesentlichen ein Klick nach einem Doppelklick, wobei die Zeit dazwischen klein genug ist. Sie müssen also ein Klickereignis bearbeiten, prüfen, ob zuvor ein Doppelklick ausgeführt wurde, und ein Dreifachklickereignis auslösen.

Obwohl der Code anders ist, mache ich es so:

  • Deklariere doubleClickTime & amp; doubleClickInterval zum Speichern der letzten Doppelklick & amp; die Zeit zwischen den Klicks.
  • Deklarieren Sie tripleClickEventFired, um anzugeben, dass wir bereits ein Ereignis ausgelöst haben (init to false)

Handler

Klick-Handler

%Vor%

Doppelklick-Handler

%Vor%

Die Funktionen, die ich verwende, waren:

  • clock (): Ermittelt die aktuelle Systemzeit in UNIT
  • GetDoubleClickTime (): eine Funktion, die von Windows zur Verfügung gestellt wird, um die Zeit zwischen Klicks
  • zu erhalten
  • die "* CLOCKS_PER_SEC / 1000;" Teil soll den Rückgabewert von GetDoubleClickTime () zu UNIT '' '
  • umwandeln

HINWEIS: Der dritte Klick löst sowohl ein Klick- als auch ein Double-Click-Ereignis auf Systemebene aus

    
Tong Huu Khiem 21.12.2011 22:19
quelle
0

TUN dies:

%Vor%     
Jimmy T. 26.05.2017 18:20
quelle

Tags und Links