Eventi fondamentali della tastiera

Gli eventi fondamentali della tastiera sono 4: Change (che però, come vedremo più avanti, può essere generato anche con un’azione del mouse), KeyPress, KeyDown e KeyUp. L’evento Change viene generato quando si modifica il contenuto di un controllo; nel controllo TextBox (nell’immagine a lato è evidenziata la sua posizione nella Casella degli strumenti), ad esempio, tale evento viene scatenato quando cambia il testo in esso contenuto. Si deve fare attenzione all’uso di questo evento in quanto può innescare degli eventi a catena difficile da prevedere che posso mandare in loop l’applicazione. Ad esempio, se all’interno dell’evento Change di un TextBox si scrive del codice che modifica il testo del TextBox verrà generato di nuovo l’evento Change, e così via.

Quando un utente preme un tasto viene generato l’evento KeyDown, poi si genera l’evento KeyPress e, infine, KeyUp. E’ importante notare che l’evento KeyPress viene generato solo se si premono i tasti alfanumerici, i tasti di funzione, e i tasti ESC, Backspace e Invio; l’evento non si verifica, ad esempio, se l’utente preme le frecce direzionali.

A questo punto possiamo creare un piccolo progetto di esempio per verificare quanto detto finora. Per le nostre prove utilizzeremo il controllo TextBox, di cui abbiamo parlato poc’anzi.

Fate clic sull’icona che lo rappresenta nella Casella degli strumenti, poi portatevi nel punto del form in cui lo volete inserire, fate clic con il tasto sinistro del mouse e, tenendolo premuto, create la casella con la forma che desiderate. Dopo aver rilasciato il tasto del mouse, la TextBox comparirà nel form. Vogliamo ora scrivere il codice per gestire gli eventi Change, KeyPress, KeyUp e KeyDown. Per fare questo, innanzi tutto fate doppio clic sul controllo: comparirà la solita finestra in cui scrivere il codice del programma L’evento in cui ci troviamo è proprio Change:

Private Sub Text1_Change()
End Sub

All’interno di questa routine scrivete semplicemente

Me.Print “Il contenuto della casella di testo è cambiato.”

Ora premete F5 per avviare il programma e provate a digitare qualcosa nella casella di testo: noterete che, ogni volta che viene premuto un tasto, sul form compare la scritta Il contenuto della casella di testo è cambiato. Dopo aver chiuso il programma con un clic sulla X nella barra del titolo, completiamo l’esempio inserendo questo codice:

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) Me.Print “Evento KeyDown”
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
Me.Print “Evento KeyPress”
End Sub
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
Me.Print “Evento KeyUp”
End Sub

Eseguite nuovamente il programma e, come prima, digitate qualcosa nella casella di testo; osservate quello che viene scritto sul form di volta in volta.

Both comments and pings are currently closed.

Comments are closed.