Visual Basic.NET - Para Yamil Bracho

 
Vista:

Para Yamil Bracho

Publicado por Jose Olmes (86 intervenciones) el 04/12/2003 16:33:22
Hola Yamil: He leido la ayuda que le has dado a un participante del foro sobre como detectar una combinacion de teclas.
Yo he necesitado lo mismo para detectar las teclas de funcion en un formulario. He sobreescrito el metodo ProcessDialogKey que recibe como parametro (Keys keyData) como lo explicaste, pero tengo el siguiente problema:
Despues de sobreescribir el metodo la tecla Tab no me funciona. Necesito que la tecla Tab me cumpla la funcion normal de cambiar el foco de un control a otro segun el orden de tabulacion. Como lo puedo hacer?
Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 153
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

RE:Para Yamil Bracho

Publicado por Yamil Bracho (631 intervenciones) el 04/12/2003 17:26:28
Cuando sobreescribes ProcessDialogKey estas susbtituyendo el que tiene el formualrio y por ello el comportamiento "normal" de ciertas teclas no eta disponible al menos que lo manejes dentro de la funcion que existe.
Creo que puede funcionar (aunque no lo he probado) chequear si la tecla es TAB dentro de ProcessDialogKey y si lo es entonces invocar al metodo ProcessTabKey(true) para avanzar al siguiente control y si es ShitTab llamar a ProcessTabKey( false ) para ir al control anterior.

La otra cosa que se me ocurre es que pasemos el procesamiento al padre del formulario que en este caso siempre es WinForm. Si la tecla no es ninguna de la que vamos a procesar simplemente haces
return MyBase.ProcessDialogKey(keyData) dentro de tu ProcessDialogKey...

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias Yamil

Publicado por Jose Olmes (86 intervenciones) el 04/12/2003 20:54:00
Gracias Yamil al hacer el return MyBase.ProcessDialogKey(keyData) se soluciono el problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar