Eventi fondamentali del mouse

Gli eventi, cioè le azioni che vengono scatenate dall’utente oppure che sono generate da particolari condizioni (l’impostazione di un timer, la chiusura di Windows, ecc.) sono il perno attorno a cui ruota tutta l’attività di programmazione con VB. In questa lezione analizzeremo alcuni tra gli event più comuni, per poi vedere nelle lezioni successive come questi possano essere utilizzati.

Cominciamo con gli eventi principali che si possono generare con il mouse; Essi sono fondamentalmente 5: Click, DlbClick, MouseDown, MouseUp e MouseMove. L’evento Click si verifica quando un utente fa clic con il tasto sinistro del mouse (o destro, se è mancino) sopra un controllo, come un pulsante, una casella di testo, ecc. L’evento DlbClick, invece, viene scatenato quando si fa doppio clic sul controllo, per convenzione viene usato quando si vuole sveltire un’operazione, facendo compiere all’utente contemporaneamente l’azione di scelta e quella di conferma. E’ importante notare che quando l’utente effettua un doppio clic su un controllo, viene eseguito il codice dell’evento Click e poi quello dell’evento DblClick. Facciamo subito una prova per verificare quanto si è detto. Inserite un controllo pulsante (CommandButton) nel form, ora fate doppio clic su di esso; verrà visualizzata questa routine:

Private Sub Command1_Click()
End Sub

E’ qui che va inserito il codice che si vuole eseguire quando un utente fa clic sul pulsante. Ad esempio, scrivete:

MsgBox “E’ stato fatto clic sul pulsante.”

 

Ora dobbiamo avviare l’applicazione; per fare questo ci sono tre modi: premete il tasto F5; fate clic sul menu Esegui, quindi sul comando Avvia; premete il pulsante Avvia nella barra degli strumenti. Apparirà il form con al centro il pulsante che abbiamo inserito; fate clic su di esso: se non avete commesso errori, verrà visualizzata una finestra.

A questo punto, per chiudere il form, fate clic sulla X, a destra nella barra del titolo (come in una normale applicazione per Windows). L’esempio che abbiamo appena realizzato è disponibile per il download facendo clic qui.

Nella maggior parte dei casi, gli eventi Click e DblClick sono più che sufficienti per la gestione del mouse, ma in alcuni casi potrà essere necessario sapere quando si preme un pulsante del mouse, quando lo si rilascia oppure quando si sposta il mouse su un controllo: questi eventi sono chiamati, rispettivamente, MouseDown, MouseUp e MouseMove. Per spostarsi negli eventi MouseDown e MouseUp, fate doppio clic sul pulsante: verrà visualizzato il codice che abbiamo scritto precedentemente. Ora fate clic sulla lista di sinistra per aprire l’elenco e selezionate, ad esempio, MouseDown: sarà ora possibile scrivere il codice che si vuole venga eseguito quando si verifica questo evento. Riprendiamo dunque l’esempio precedente e aggiungiamo alcune istruzioni che ci dicano quando un pulsante del mouse viene premuto e quando, invece, rilasciato:

Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.Print “E’ stato premuto un tasto del mouse.”
End Sub
Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.Print “E’ stato rilasciato un tasto del mouse.” End Sub

In questo esempio ci sono due cosa da spiegare. La prima è la parola chiave Me, che indica il form corrente, cioè quello in cui si sta eseguendo l’operazione (approndiremo questo concetto nella lezione 8). Dopo il punto, viene utilizzato il metodo Print, che in questo caso ha lo scopo di stampare del testo direttamente sopra il form. Ora eseguite il programma; in tal modo, oltre a verificare in prima persona come funzionano questi eventi, vedrete anche l’ordine in cui essi vengono generati: prima l’evento MouseDown, poi Click e infine MouseUp. Prima vedrete sul form la scritta E’ stato premuto un tasto del mouse, subito dopo comparirà la finestra di messaggio E’ stato fatto clic sul pulsante e, infine, di nuovo sul form, E’ stato rilasciato un tasto del mouse:

Both comments and pings are currently closed.

Comments are closed.