|
Página 1 de 2
|
Varios Texbox Con El Mismo Evento!!
Autor |
Mensaje |
m_padron
Usuario
Registrado: Noviembre 2010
Mensajes: 9
Edad: 55
|
Varios Texbox Con El Mismo Evento!!
Estoy realizando un formularion con varios textbox, el cual con keypress voy saltando con la tecla ENTER, eso funciona de maravilla, pero quiero tambien hacer que en cada textbox pueda validar si agunos textbox pueda escribir LETRAS y en otras NUMEROS. Aqui le dejo parte del codigo:
PUBLIC SUB gEnter_KeyPress() 'Para hacer solo LETRAS
IF Key.code = Key.enter OR Key.code = Key.return THEN
SELECT CASE LAST.tag
CASE 1
Label1.Text = TextBox_codigoPostgrado.Tag
TextBox_codigoPostgrado.setfocus
CASE 2
TextBox_lapsoInscribir.setfocus
CASE 3
TextBox_Apellidos.setfocus
CASE 4
TextBox_Nombres.SetFocus
CASE 5
TextBox_cedula.SetFocus
CASE 6
TextBox_pasaporte.SetFocus
CASE 7
TextBox_email.SetFocus
CASE 8
TextBox_telefono.SetFocus
CASE 9
TextBox_dirHabitacion.SetFocus
END SELECT
END IF
END
Gracias por su ayuda soy nuevo en gambas y necesito ayuda.
|
#1 Miercoles, 24 Noviembre 2010, 15:30 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Varios Texbox Con El Mismo Evento!!
Para que usen todos el mismo evento, símplemente agrúpalos todos en el mismo grupo (propiedad group del control)
Lo de números y letras... busca por este mismo foro, que recuerdo varios hilos donde se tocaba ese tema.
Bienvenido, pasa al fondo y págate una cerveza.
Saludos.
=================== No podemos regresar
|
#2 Miercoles, 24 Noviembre 2010, 18:44 |
|
|
m_padron
Usuario
Registrado: Noviembre 2010
Mensajes: 9
Edad: 55
|
Re: Varios Texbox Con El Mismo Evento!!
Gracias, shordi, yo se q aqui hay bastane topico sobre el tema de validacion de texbox, lo q pasa es que si lo coloco dentro del evento keypress no funciona ejemplo......
PUBLIC SUB gEnter_KeyPress() 'Para hacer solo LETRAS
IF Key.code = Key.enter OR Key.code = Key.return THEN
SELECT CASE LAST.tag
CASE 1
IF IsNumber(Val(Key.Text)) = FALSE THEN
ELSE
Message.Info("Solo letra")
STOP EVENT
END IF
TextBox_codigoPostgrado.setfocus
CASE 2.................................
Sencillamente no me funciona, y se lo colo asi, tambien no funciona:
PUBLIC SUB TextBox_codigoPostgrado_KeyPress()
IF IsNumber(Val(Key.Text)) = FALSE THEN
ELSE
Message.Info("Solo letra")
STOP EVENT
END IF
END
Esto tratando de hacer el evento aparte, solo el objeto textbox solo.
|
#3 Miercoles, 24 Noviembre 2010, 19:51 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Varios Texbox Con El Mismo Evento!!
Hola
Tu pones todos los textboxes en el mismo grupo.
A cada uno le pones un tag según el tipo de teclas válidas que deba admitir.
Por ejemplo
textboxes de nombres, direcciones tag 1
textboxes de cifras tag 2
textboxse para valores matemáticos (cifras, signo -,, signo coma, signo punto) tag 3
textboxes de teléfonos (númeos mas espacios) tag 4
textboxes para fechas (cifras, y caracteres separadores /.: tag 5
Una vez hecho eso tu haces el keypress tal como sigue
Un saludo
|
#4 Miercoles, 24 Noviembre 2010, 20:40 |
|
|
m_padron
Usuario
Registrado: Noviembre 2010
Mensajes: 9
Edad: 55
|
Re: Varios Texbox Con El Mismo Evento!!
Gracias SOPLO, cre entender tu sugerencia, pero me sale una duda, si viste el codigo q coloque como inicio de este tema, es para controlar q desde la tecla ENTER o TAB yo pueda saltar de caja en caja (textboxes), COMO HAGO ESO??, segun tu sugerencia, estoy armando un codigo pero con keyrelease() y hasta el meomento me va, es algo asi:
PUBLIC SUB gEnter_KeyRelease()
Label1.Text = TextBox_denominacionPostgrado.Text
IF IsNumber(Val(TextBox_denominacionPostgrado.Text)) = FALSE AND IsNumber(Val(TextBox_Apellidos.Text)) = FALSE THEN
ELSE
Message.Info("Solo LETRA")
STOP EVENT
END IF
END
Funciona, pero laidea de la PROGRAMACION es asi el codigo mas eficiente,y se puedo hacerlo en un SOLO BLOQUE mejor.
QUE ME SUGIERES????
|
#5 Miercoles, 24 Noviembre 2010, 20:46 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Varios Texbox Con El Mismo Evento!!
Veo ahí algunas cosas raras:
La función val siempre devuelve un número (bueno, a veces un booleano, pero isNumber siempre te devolverá cierto).
luego
isnumber(val(
siempre te dará cierto.
Por otra parte me parece muy raro eso de
IF IsNumber(Val(Key.Text)) = FALSE THEN
ELSE
¿Por qué no preguntas por TRUE y te ahorras el else?
Si el estándar del GUI es que el paso de campo a campo es con TAB ¿por qué ese empeño del Enter que todo te lo complica?
Y por último: si preguntas si key.code es enter y ya lo sabes... ¿para qué preguntas si es número?
=================== No podemos regresar
última edición por shordi el Miercoles, 24 Noviembre 2010, 20:50; editado 1 vez
|
#6 Miercoles, 24 Noviembre 2010, 20:47 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Varios Texbox Con El Mismo Evento!!
mi respuesta de arriba es al código de la segunda respuesta... que nos hemos cruzado.
=================== No podemos regresar
|
#7 Miercoles, 24 Noviembre 2010, 20:49 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Varios Texbox Con El Mismo Evento!!
Suele pasarno shordi je je je
Citar: PUBLIC SUB gEnter_KeyRelease()
Label1.Text = TextBox_denominacionPostgrado.Text
IF IsNumber(Val(TextBox_denominacionPostgrado.Text)) = FALSE AND IsNumber(Val(TextBox_Apellidos.Text)) = FALSE THEN
ELSE
Message.Info("Solo LETRA")
STOP EVENT
END IF
END
Este código está mal. Te pongo lo que creo que quieres hacer correctamente
yo hago lo de los tag que te dije. De hecho tengo hecha una clase para control del teclado que me soluciona estos problemas corrientes y si quieres te la pongo para que la tomes como ejemplo. Un keypress corriente suele ser
Ahora bien tu quieres hacer como en VB el setfocus. Quieres que al pulsar Enter se pase el foco al siguiente control. Eso tengo que probarlo (ahora no tengo tiempo, mas tarde quizá) pero en principio podrías usar el método next que te pasa al siguiente control
case key.code=key.REturn
last.next
algo así.
|
#8 Miercoles, 24 Noviembre 2010, 21:27 |
|
|
ahtonio
Programador
Registrado: Octobre 2009
Mensajes: 144
Edad: 58 Ubicación: Zaragoza
|
Re: Varios Texbox Con El Mismo Evento!!
Pero que lío me he 'montao' leyendo.
Espero responder a lo que pretendes.
(* Una cosa que igual no sabes. Al pulsar enter en un textbox, se produce el evento activate)
(Pero no se produce al pulsar Return, que son distintos)
Tenemos varios textbox y su propiedad Tag que nos dice si son solo números. Además al pulsar enter quiero que
se mueva el foco.
¡Cuidado con textbox.next.setfocus! Si lo siguiente que tienes es un label, por ejemplo, CRASH. Tienes que fijarte en la pestaña jerarquía que hay al lado de propiedades que van uno tras otro en el orden que quieres que tomen el foco.
Para muestra te propongo lo siguiente. Una función en un módulo que controle que la tecla pulsada es numérica y/o con decimales y otra que me diga si se ha pulsado Enter/Return:
En el evento _keypress del/os textbox que lo requieran (buena la idea de agruparlos).
Conste que yo por no enrevesar con lo del grupo de textbox, lo tengo así:
y para cada control manejo el evento KeyPress, Change, LostFocus(este con cuidado), GotFocus..........
Como verás aquí no existe la propiedad de VBA tabOrder ni nada parecido.
Espero te sirva de algo la explicación o por lo menos te aporte alguna idea.
Antonio
última edición por ahtonio el Miercoles, 24 Noviembre 2010, 22:43; editado 1 vez
|
#9 Miercoles, 24 Noviembre 2010, 22:12 |
|
|
m_padron
Usuario
Registrado: Noviembre 2010
Mensajes: 9
Edad: 55
|
Re: Varios Texbox Con El Mismo Evento!!
Gracias SOPLO, lo probare y te aviso, mañana en esto momento salgo de la oficina. Saludos y mil gracias
|
#10 Miercoles, 24 Noviembre 2010, 22:15 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|