martes, 3 de junio de 2008

Capturar las teclas pulsadas en un form

A veces resulta util capturar las teclas que un usuario pulsa en un form. Por ejemplo, tenemos la típica aplicación que al pulsar F2 hace una cosa, F4 otra y así sucesivamente. Pues en Visual Basic .Net lo tenemos sencillo.

Lo primero de todo es poner la propiedad Keypreview del form a true, para que registre los eventos del teclado. Luego lo tenemos sencillo. Basta con ejecutar un sencillo código en el keypress. Por ejemplo:

Public Class Form1

Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress

MessageBox.Show("Has pulsado la tecla " & e.KeyChar)

End Sub
End Class

2 comentarios:

jota dijo...

Exelente...
pero y si quiero capturar la pulsacion de otras teclas como las flechas, Supr, Impr Pant, etc.

alguien sabe como se hace

Aitor Ramos Sasselli dijo...

@jota Puedes crear una Sentencia If en el evento WhenKeyUp (O algo asi, no lo tengo abierto ahora, pero creo recordar que estaban abajo del todo) de la siguiente forma:


If e.KeyData = Keys.Supr Then
accionarealizar
ElseIf e.KeyData = Keys.Escape
otraaccion
End If


De esa forma puedes definir distintas acciones para distintas teclas.

Un saludo

P.D.: Por cierto, asegurate de que el evento lo definas sobre el formulario, no sobre alguno de los controles.