Home page |
![]() |
Teacher |
![]() |
Online |
Il sito |
Competenze da acquisire |
Regole didattiche |
Contatore visite (dal 18-10-07) N° |
|
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Innanzi tutto, in VB .NET tutti gli eventi prevedono degli argomenti, a differenza di quanto avveniva nelle versioni precedenti di Visual Basic, in cui eventi del tipo Form_Click e lo stesso Form_Load non avevano alcun argomento. Il primo argomento è sempre di tipo System.Object e permette di identificare l’oggetto che ha generato l’evento: questa informazione è utile, ad esempio, perché con la parola chiave Handles è possibile associare più oggetti alla stessa routine. Ad esempio, inseriamo due pulsanti sulla form, quindi premiamo il tasto F7 per visualizzare il codice del form e scriviamo:
Private Sub Clic(ByVal
sender As Object, ByVal e As EventArgs) Handles Button1.Click, Button2.Click
If sender.Equals(Button1) Then
MsgBox(“E’ stato fatto clic sul pulsante Button1.”)
ElseIf sender.Equals(Button2) Then
MsgBox(“E’ stato fatto clic sul pulsante Button2.”)
End If
End Sub
La lista degli argomenti richiesti da un
certo evento è disponibile nella Guida in linea di Visual Basic .NET. Dopo la
parola chiave Handles sono
stati specificati due eventi, separati da una virgola; in generale, è possibile
specificarne un numero arbitrario, a patto che richiedano gli stessi argomenti.
Poiché la Sub Clic viene
generata indifferentemente quando si fa clic su
Button1 o su Button2,
è necessario usare l’oggetto sender
per sapere quale dei due pulsanti è stato in realtà premuto; per fare questo, si
usa il metodo Equals
dell’oggetto, che prende come argomento un altro oggetto e restituisce true se i
due oggetti sono uguali.
Il secondo argomento, nel caso dell’evento
Load, è di tipo
EventArgs, anche se a
seconda del tipo di evento può essere diverso; ad esempio, nel caso degli eventi
KeyDown, KeyUp, è di tipo
System.Windows.Forms.KeyEventArgs.
Esso contiene informazioni di vario genere, dipendenti dal particolare tipo di
evento a cui si riferisce.
Per fare un esempio, proviamo a intercettare l’evento
KeyPress della form; Innanzi
tutto posizioniamoci sull’evento relativo. All’interno della finestra del
codice, fare clic sulla ComboBox in alto a sinistra e selezionare (base
class events): tale categoria raggruppa tutti gli eventi della
classe base; fatto questo, nel ComboBox in alto a destra comparirà la scritta (Declarations):
fare clic su quest’ultima e scorrere l’elenco fino a selezionare l’evento
KeyPress. All’interno
dell’editor verrà automaticamente aggiunta la seguente Sub per gestire l’evento:
Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress End Sub
Supponiamo di voler stampare un messaggio diverso a seconda che si digiti una consonante o una vocale. Il codice da scrivere è:
ATTENTO, da trasformare con ..elseif..
Private Sub
Form1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
Select Case e.KeyChar
Case “A”, “E”, “I”, “O”, “U”, “a”, “e”,
“i”, “o”, “u”
MsgBox(“E’ stata digitata una vocale.”) Case Else
MsgBox(“E’ stata digitata una consonante.”)
End Select
End Sub
L’oggetto e, di tipo KeyPressEventArgs, contiene informazioni sul carattere premuto; in particolare, la proprietà KeyChar restituisce il carattere che è stato digitato.
Quanto detto relativamente agli eventi è valido per la form, ma più in generale per tutti i controlli di Visual Basic .NET.
Il TG diurno su e20 Sicilia, per il sito web dell'Ufficio Tributi, realizzato al Fermi
Il TG serale di e20 Sicilia, per il primo sito dell'Ufficio Tributi, realizzato al Fermi
Terra promessa
la mia partecipazione all'Eredità
Un professore da lanciare via a razzo!
Giornata da ..sballo