Saltar al contenido

¿qué sucede al hacer doble clic en el botón menú de control?

¿qué sucede al hacer doble clic en el botón menú de control?

Botón de doble clic c

He construido un editor de componentes personalizado (TComponentEditor) para un control personalizado mío. Estoy implementando el menú contextual de clic derecho, lo que significa que por defecto, al hacer doble clic en el control en tiempo de diseño se ejecuta el primero de los elementos del menú contextual. Sin embargo, al hacer doble clic, no deseo que esto ocurra. Me gustaría tener el comportamiento original de crear un manejador de eventos OnClick.

Al sobrescribir el procedimiento Edit de este componente editor, he probado tanto con como sin heredar. Si lo incluyo, al hacer doble clic se ejecuta el primer elemento del menú contextual. Si no incluyo el heredado, no ocurre nada al hacer doble clic en el control. Antes de añadir este editor de componentes, el doble clic generaba automáticamente un manejador de eventos OnClick sin ninguna implementación propia.

C# el evento de doble clic del botón no se dispara

(4) a la derecha de este mismo menú desplegable hay un pequeño botón cuadrado, selecciónalo y se abrirá una ventana titulada «Button Held Time Dependent Actions». Dentro de esta ventana BHTDA crearás un tiempo de pulsación y mantenimiento para este botón izquierdo, de modo que cuando se mantenga pulsado durante ese tiempo (digamos 500 milisegundos), ese botón realizará automáticamente un «doble clic» en ese momento, como si realmente hubieras hecho doble clic con el botón izquierdo del ratón;

LEER  ¿cómo desactivar notificaciones de chrome en android?

(5) Ahora, en esta ventana BHTDA (puedes introducir un nombre en ella para esta personalización si quieres pero no es necesario) a la derecha de las palabras «Normal Click» hay un menú desplegable; en él selecciona Left Click;

(6) En la siguiente fila hacia abajo, haga clic en la casilla junto a «Held for» y luego a la derecha establezca su tiempo de retención (o utilice el tiempo por defecto que ya está escrito allí – puede modificarlo de nuevo más tarde si desea cambiarlo) … luego un poco más a la derecha hay un menú desplegable – en él seleccione «Double Click»;

Espero que mis instrucciones sean claras porque se me acabó el tiempo para esta tarea. Estoy seguro de que esta descripción debe aclarar todo esto para que usted obtenga una comprensión básica de cómo utilizar este software de ratón.

Doble clic o doble pulsación

Es posible que cualquier manejador de eventos que contenga código que requiera un tiempo de proceso significativo, pueda provocar un retraso en la desactivación del botón en cuestión; independientemente de dónde se llame a la línea de código de desactivación dentro del manejador.

Asumiendo que el comando de WPF no le da suficiente control como para meterse con el manejador de clic, ¿podría poner algún código en el manejador de comando que recuerde la última vez que se ejecutó el comando y salga si se solicita dentro de un período de tiempo determinado? (ejemplo de código abajo)

Se me ocurren un par de formas de resolver este problema. Una es el enfoque de JMarsch: simplemente rastrear cuando se llama a Execute, y salir sin hacer nada si se llamó en los últimos cientos de milisegundos.

LEER  ¿dónde está talkback en huawei?

Estoy usando Xamarin y MVVMCross, aunque no es WPF creo que la siguiente solución se aplica, he creado una solución que es específica para el viewmodel (no se ocupa de la interfaz de usuario específica de la plataforma) que creo que es muy útil, utilizando un ayudante o clase base para el viewmodel crear una lista que mantiene un registro de los comandos, algo así:

Control del botón x del ratón doble clic derecho

El doble clic viene determinado por la configuración del ratón del sistema operativo del usuario. El usuario puede establecer el tiempo entre los clics de un botón del ratón que debe considerarse un doble clic en lugar de dos clics. El evento Click se activa cada vez que se hace doble clic en un control. Por ejemplo, si tiene manejadores de eventos para los eventos Click y DoubleClick de un formulario, los eventos Click y DoubleClick se levantan cuando se hace doble clic en el formulario y se llaman ambos métodos. Si se hace doble clic en un control y ese control no soporta el evento DoubleClick, el evento Click puede ser levantado dos veces.

Debe establecer los valores StandardDoubleClick y StandardClick de ControlStyles a true para que este evento se active. Estos valores pueden estar ya establecidos a true si está heredando de controles existentes de Windows Forms.

Heredar de un control estándar de Windows Forms y cambiar los valores StandardClick o StandardDoubleClick de ControlStyles a true puede causar un comportamiento inesperado o no tener ningún efecto si el control no soporta los eventos Click o DoubleClick.

LEER  ¿cuánto cuesta el desbloqueo de un celular?
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad