Argomenti:
- Introduzione
- Progettazione della applicazione
- Il codice del nostro progetto
- Il ciclo For Each .. Next
- Video Lezione n.4
Introduzione
In questa lezione, approfondiremo alcune nozioni sulla progettazione di un’interfaccia grafica GUI in Visual Basic con il software di sviluppo Visual Studio 2019.
In particolare l’attenzione sarà rivolta alla creazione di un’interfaccia grafica che includa fra gli altri controlli standard di Windows una casella combinata.
La casella combinata detta anche “Combobox” è un controllo di input e output che in modo dinamico può essere utilizzata sia per inserire dati che per visualizzare dati.
Progettazione dell’applicazione
Per creare un progetto scegliere File, Nuovo Progetto, “.Net Core”, “Visual Basic”, “Windows Form”, l’ambiente di sviluppo crea un’interfaccia Form che sarà disegnata dall’utente come riportato sotto.

In quest’interfaccia è presente una casella combinata, quattro pulsanti, una casella di testo, e due etichette. Per inserire i controlli nel Form occorre selezionare la casella degli strumenti standard di Visual Basic presente nella parte finestra dell’interfaccia di Visual Studio, come mostrato in figura.

La nostra applicazione permetterà mediante la pressione del pulsante “btnaggiungi” di inserire dei numeri nella casella combinata,.
In seguito attraverso il pulsante “btncalcola” verrà eseguita la somma dei numeri presenti nella casella combinata e il risultato visualizzato nella casella di testo. Il pulsante “btncancella” cancellerà all’occorrenza tutti i valori nella casella combinata, mentre il pulsante “btnfine” terminerà il programma.
I nomi dei pulsanti sono attribuiti alla proprietà “Name” di ciascun controllo che rappresenta il nome dell’oggetto che sarà utilizzato nel codice.
Le etichette dei pulsanti e delle due etichette “Label1” e “Label2” verranno modificate durante l’avvio del programma a “run-time”.
Per definire la proprietà “Name” di ogni controllo, selezionare sull’interfaccia del Form il controllo e poi attraverso la finestra di ispezione proprietà è possibile modificare questa e tantissime altre proprietà come mostrato in figura.

Il codice del progetto
Il codice del nostro progetto tutto nella stessa classe è:
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
btnaggiungi.Text = "Aggiungi"
btncancella.Text = "Cancella"
btnfine.Text = "Fine"
btncalcola.Text = "Calcola"
Label1.Text = "Elementi:"
Label2.Text = "Risultati"
Label3.Text = "Programma per il calcolo della somma"
End Sub
Private Sub btnaggiungi_Click(sender As Object, e As EventArgs) Handles btnaggiungi.Click
Dim x As Integer
x = CInt(InputBox("Inserisci dati:", "Richiesta inserimento"))
cmbelementi.Items.Add(x)
End Sub
Private Sub btncalcola_Click(sender As Object, e As EventArgs) Handles btncalcola.Click
Dim totale As Integer = 0
Dim j As Object
For Each j In cmbelementi.Items
totale = CInt(j) + totale
Next
txtr.Text = totale
cmbelementi.Text = totale
End Sub
Private Sub btncancella_Click(sender As Object, e As EventArgs) Handles btncancella.Click
cmbelementi.Items.Clear()
End Sub
Private Sub btnfine_Click(sender As Object, e As EventArgs) Handles btnfine.Click
MsgBox("Arrivederci", vbOKOnly, "Avviso")
Me.Close()
End Sub
End Class
Il codice prevede l’evento “Load” del Form ove sono inizializzate le proprietà dei controlli; infatti è utilizzato il metodo “Text” per impostare per ogni controllo l’etichetta. L’evento Load è il primo evento all’avvio dell’applicazione che si verifica. L’evento click sul pulsante di etichetta “Aggiungi” per intederci quello con Name “btnaggiungi” chiede mediante una finestra di dialogo all’utente l’inserimento di un numero. Tutto quello che viene inserita nella finestra di dialogo deve essere convertito mediante un cast esplicito in intero utilizzando la funzione “CInt”.
In seguito attraverso il metodo “Add(elemento)” è inserito il valore nella casella combinata riconvertito in stringa in modo implicito.
Il ciclo for Each .. Next
La parte dell’evento click del pulsante di etichetta “Calcola” prevede un ciclo “for Each .. Next” che in questo caso viene utilizzato per selezionare in modo ripetitivo degli elementi di una collezione. In questo caso la collezione sono gli “Items” ovvero l’insieme degli elementi della casella combinata. Definita una variabile riferimento di tipo Oggetto, è possibile utilizzare quest’ultima come se fosse un contatore del ciclo per selezionare all’interno della collezione un singolo “Item” (elemento).
Una volta selezionato mediante un cast esplicito viene convertito in un numero intero e effettuata la somma. Il ciclo termina quando gli elementi della collezione sono stati tutti selezionati. E viene stampato il risultato nella TextBox. Gli altri due eventi click sono legati al pulsante di etichetta “Cancella” che sfrutta il metodo “Clear()” per cancellare tutti gli elementi nella casella combinata, e per il pulsante di etichetta “Fine” che esce dal programma dopo aver visualizzato una MessageBox con un messaggio di saluto,