Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Key Release y control por defecto.
#1

Hola a todos.
[Imagen: d0z7UTt.png]
En un programa en el que doy ordenes por teclado uso el evento "Form_KeyRelease()" para interceptar la teclas pulsadas y actuar en consecuencia con algo así:
GAMBAS
  1. If Key.Code = Key.Enter Or Key.Code = Key.Return Then
  2.   ' Orden a ejecutar.


El caso es que al pulsar "Enter" ademas de hacer lo que esta estipulado en el código también se "activa" un botón del formulario y se produce un evento click en este, cosa que no deseo que ocurra.
El botón en cuestión es el primer botón del primer contenedor del formulario (un panel) que esta creado por código.
¿Existe una forma de evitar el que al pulsar enter se active el botón?

1 Saludo.
    ¡Gracias!
#2

Estoy probando con esto a ver si logro evadir el evento
GAMBAS
  1.  
  2. Public Sub Form_KeyPress()
  3.  
  4.   If Key.Code = Key.Enter Or Key.Code = Key.Return Then
  5.     sText &= "Enter\n"
  6.     TextArea1.Text = sText
  7.     Stop Event
  8.  
  9.  
  10. Public Sub Form_KeyRelease()
  11.  
  12.   If Key.Code <> Key.Enter And Key.Code <> Key.Return And Key.Code <> Key.Backspace Then
  13.     sText &= Chr(Key.Code) & "\n"
  14.  



1 Saludo.
    ¡Gracias!
#3

Puedes también probar a bloquear el botón en cuestión durante el evento.
GAMBAS
  1. Public Sub Form_KeyPress()
  2.  
  3.   If Key.Code = Key.Enter Or Key.Code = Key.Return Then
  4.     object.lock(button1)
  5.     sText &= "Enter\n"
  6.     TextArea1.Text = sText
  7.     Stop Event
  8.     object.unlock(button1)
  9.  



No lo he probado, pero es una idea.

Saludos

No podemos regresar
[-] Los siguientes 1 usuarios dice gracias a Shordi por este post:
  • tincho
    ¡Gracias!
#4

Echa un vistazo a este código. Puede ayudarte.


Archivos adjuntos
.gz KeyTest-0.0.1.tar.gz Tamaño: 22.77 KB  Descargas: 1
[-] Los siguientes 1 usuarios dice gracias a cogier por este post:
  • tincho
    ¡Gracias!
#5

(15-04-2022, 12:38)Shordi escribió:  Puedes también probar a bloquear el botón en cuestión durante el evento.

Si, podría ser, lo probare.
Existe una dificultad mas ya que el control es creado en tiempo de ejecución, así que tendria que recorrer el contenedor para bloquear el primer botón, o también (tal vez mejor) bloquear directamente el contenedor.
Gracias.

(15-04-2022, 13:23)cogier escribió:  Echa un vistazo a este código. Puede ayudarte.

Gracias.

1 Saludo.
    ¡Gracias!
#6

(15-04-2022, 12:38)Shordi escribió:  No lo he probado, pero es una idea.

Finalmente, lo solucione pasando "teclas" de Form_KeyRelease a Form_KeyPress y allí pongo "Stop Event" si es necesario, gracias a los ejemplos de Cogier y Shordi, he podido ver que, salvo casos especiales, es mejor usar el evento Form_KeyPress
Luego, como siempre sucede con estas cosas, lo de bloquear el botón me sirvió para solucionar otro problema nuevo relacionado con unos ToolButtons que asignan verdadero o falso a unas variables y tambien usaba teclas de funcion para lo mismo pero cuando asignaba el valor al boton se volvia a disparar el evento así que Lock y Unlock llegaron justo a la fiesta. Big Grin

1 Saludo.
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)