Home page

Teacher

On

line

Il sito

Competenze da acquisire

Regole didattiche

Contatore visite
 (dal 18-10-07)
Hit Counter
  Esercitazion PON / TIC Album Fotografico ricreazione_e_video Forum didattico Progetti Alunni Corsi per docenti Download    

IIS: Ragioneria

1°Anno  CAT

2°Anno AFM

3° Anno AFM

3° Anno  SIA

4°Anno AFM

4°Anno SIA

5°Anno SIA


Algoritmi fondamentali


Flow Chart


Codice


Ricordi

Statistiche

Handles (tratto da HTML.it)

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.