Visual Basic - Detectar ALT key

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Detectar ALT key

Publicado por Carlos (79 intervenciones) el 23/11/2006 12:22:04
Tengo un form con un Grid que muestra el contenido de una tabla. Necesito saber como puedo detectar cuando el operador presiona la tecla ALT. Busque ayuda en el MSDN y encontré esto pero no me ayuda, no funciona:

Open a new project and add the variable ShiftTest to the Declarations section of the form:

Dim ShiftTest as Integer

Add the following code to the form's MouseDown event:

Private Sub Form_MouseDown(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
ShiftTest = Shift And 7
Select Case ShiftTest
Case 1 ' or vbShiftMask
Print "You pressed the SHIFT key."
Case 2 ' or vbCtrlMask
Print "You pressed the CTRL key."
Case 4 ' or vbAltMask
Print "You pressed the ALT key."
Case 3
Print "You pressed both SHIFT and CTRL."
Case 5
Print "You pressed both SHIFT and ALT."
Case 6
Print "You pressed both CTRL and ALT."
Case 7
Print "You pressed SHIFT, CTRL, and ALT."
End Select
End Sub

Tienen alguna otra idea, please?
Gracias
Carlos Caballero
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

RE:Detectar ALT key

Publicado por The Emulator (96 intervenciones) el 23/11/2006 13:22:42
Hola

Pue ese codigo que tu probaste es para saber si el usuario preciona la tecla Shift mientras preciona un boton del mouse estando sobre el formulario y eso si funciona.


Si lo unico que quieres es mirar si el usuario preciona la tecla Shift puedes programar el evento KeyDown de un objeto, para probar crea un formulario nuevo(Sin ningun control) y coloca este codigo

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyShift Then
MsgBox "Precionaste la tecla Shift"
End If
End Sub

Con lo anterior al presionar la tecla Shift estando parado en el form aparece un mensaje.

El inconveniente de eso es que el evento no es global, al programar el evento KeyDown de un objeto solo responde si dicho objeto tiene el foco para que te des cuenta coloca un boton al form y prueba de nuevo, veras que ya no funciona porque el que tiene el foco ahora es el boton no el formulario.

Mensionaste que tienes un Grid en el form, si es en ese control donde quieres mirar lo del Shift puedes programa el evento KeyDown de ese Grid.

Saludos
http://www.theemulator.tk
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

RE:Detectar ALT key

Publicado por The Emulator (96 intervenciones) el 23/11/2006 13:32:34
jejeje yo de nuevo me confundi y te coloque fue todo con lo de la tecla Shift.

Pero todo lo que te dije aplica para la tecla Alt lo unico que hay que cambiar es la condicion en ves de mirar si es VbKeyShitf es comparar con 18 (No me acuerdo como era la constante que representa el Alt)

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
MsgBox KeyCode
If KeyCode = 18 Then
MsgBox "Precionaste la tecla Alt"
End If
End Sub

Aqui hay que tener en cuenta que existen dos Alt el derecho y el izquierdo los cuales son diefrentes

Alt derecho=17
Alt izquierdo=18

Ya es que mires si quieres validar los dos

Saludos
http://www.theemulator.tk
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