yo estaba trabajando en un problema similar en C++
En primer lugar, es necesario entender cómo se disparan los eventos, voy a tomar clic con el botón izquierdo del ratón: - Haga clic una vez -> Botón izquierdo de eventos de clic despedido - Doble clic -> Evento de doble clic izquierdo disparado
Windows solo lo admite hasta este nivel.
Por triple clic, es esencialmente un clic después de un doble clic con el tiempo intermedio lo suficientemente pequeño. Entonces, lo que debe hacer es manejar un evento de clic, verificar si hubo un doble clic antes de eso y activar un evento de triple clic.
Aunque el código es diferente, así es como lo hago:
- Declarar doubleClickTime & doubleClickInterval para almacenar la última vez que doble click & el tiempo entre clics.
- Declarar tripleClickEventFired para indicar que ya hemos disparado un evento (init en false)
Manipuladores
Haga clic Handler
if ((clock() - doubleClickFiredTime) < doubleClickInterval)
<fire triple click event>
tripleClickFired = true;
else
<fire click event>
doble clic manejador
doubleClickTime == clock()
doubleClickInterval == GetDoubleClickTime() * CLOCKS_PER_SEC/1000;
If (!tripleClickEventFired)
<fire doubleClickEvent>
else
tripleClickEventFired = false;
Las funciones que utilizo fue:
- reloj(): obtener la hora actual del sistema en la unidad
- GetDoubleClickTime(): una función que proporciona Windows para obtener el tiempo entre clics
- la " * CLOCKS_PER_SEC/1000; " parte tiene la intención de convertir el valor de retorno de GetDoubleClickTime() para UNIDAD '''
NOTA: el clic 3ª incendios tanto un clic y evento de doble clic en el nivel del sistema
Para Windows Forms (en lugar de WPF) probablemente querría la propiedad MouseEventArgs.ClickCount muy similar: http://msdn.microsoft.com/en-us/library/system.windows.forms.mouseeventargs.clicks.aspx – EricLaw
... Excepto que no funciona en Winforms. En un TextBox al menos, ClickCount solo devuelve 1 ... ¡incluso con un doble clic! – EricLaw