VB.NET : Intercettare la pressione dei “tasti speciali”

Mi è capitata spesso la necessità di dover intercettare, in una textbox, la pressione di quei tasti che normalmente non possono restituire un codice ascii, come ad esempio i tasti funzione.

Tale operazione è abbastanza semplice facendo affidamento alla funzione GetAsyncKeyState della libreria user32.
Dichiariamo la funzione all’inizio del nostro modulo:

Private Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Keys) As Short

Adesso dobbiamo intercettare la pressione del nostro tasto speciale nella textbox, per far questo ricorriamo all’evento KeyUp del nostro controllo:

Private Sub txtText_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtText.KeyUp
If GetAsyncKeyState(Keys.F12) Then
' qui immetto il codice che deve generare l'evento sulla pressione del tasto F12
End If
End Sub

In questo esempio particolare ho intercettato la pressione del tasto F12, ma intercettare qualsiasi altro tasto è la cosa più semplice del mondo: l’enumerazione “Keys” ha già al suo interno tutti i tasti disponibili, basta scorrere l’elenco:

intercettare_pressione_tasti

Come vedete ci sono tutti i tipi di tasti, compresi quelle delle tastiere multimediali come i controlli di volume.

Se questo articolo ti è piaciuto, condividilo su un social:
Se l'articolo ti è piaciuto o ti è stato utile, potresti dedicare un minuto a leggere questa pagina, dove ho elencato alcune cose che potrebbero farmi contento? Grazie :)