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

Escribir caracter uno a uno en un TextBox
#1

Buenas!.

Si dejan pulsada una tecla no se repite esta y no deja escribir en la caja de texto.
Hay que volver a levantar el dedo del teclado ( Rolleyes ) y volver a escribir.

GAMBAS
  1. Private masdeuncaracter As Boolean
  2.  
  3. Public Sub Form_Open()
  4.  
  5.   With TextBox1
  6.     .Font = Font["Mono Noto,Bold, 24"]
  7.  
  8.  
  9. Public Sub TextBox1_Change()
  10.  
  11.   If Len(TextBox1.Text) >= 1 Then masdeuncaracter = True
  12.  
  13.  
  14. Public Sub TextBox1_KeyPress()
  15.  
  16.   If masdeuncaracter Then
  17.     Stop Event
  18.   Else
  19.     TextBox1.Insert(Upper(Key.Text))
  20.     Stop Event
  21.  
  22.  
  23. Public Sub TextBox1_KeyRelease()
  24.  
  25.   masdeuncaracter = False
  26.  



Claro que....je, je..si compruebo la longitud de la caja de texto, en realidad después de una letra siempre deberá ser la condición a True.
Uy que tarde.... Tongue

Saludos

"Pero no toques, por qué tocas? - Amador"
[-] Los siguientes 1 usuarios dice gracias a Shell por este post:
  • Shordi
    ¡Gracias!
#2

No me entero de na...

No podemos regresar
    ¡Gracias!
#3

(29-12-2022, 14:06)Shordi escribió:  No me entero de na...

Big Grin

Idea principal:  Escribir en un TextBox y permitir solo un carácter, que no muestre "aaaaaaa" (por ejemplo) si dejamos pulsado.
Que quede en minúscula o mayúscula da igual.

Lo que digo al final ...(si es que me cito hasta mi mismo. Espero que no se produzca una paradoja temporal).
 
Cita:Claro que....je, je..si compruebo la longitud de la caja de texto, en realidad después de una letra siempre deberá ser la condición a True.

Es que es normal, es así. La condición de la variable masdeuncaracter va cambiando de valor. Ya que al levantar el dedo de la tecla vuelve
la condición a ser falsa. Pero esto es otra historia.

Lo que realmente si se puede es ver si sobran procedimientos, optimización.

Evento Change: Comprueba que la longitud sea mayor de 1 o igual a 1.
Evento KeyPress: Si se cumple la condición, no dejes escribir más de un caracter, en caso contrario convierte el carácter a mayúscula.
Evento KeyRelease: Al dejar de pulsar una tecla, se cambia el estado de la variable masdeuncaracter a false, permitiendo volver a escribir otra vez, un solo carácter más.

Saludos

"Pero no toques, por qué tocas? - Amador"
    ¡Gracias!


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

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)