Guida al Visual Basic .NET
Capitolo 55° - Label e Textbox
In questo capitolo mi occuperò di altri due comunissimi controlli: label (etichetta) e textbox (casella di testo). L'esempio della
lezione consiste nello scrivere un programma che, dato il raggio, calcola l'area del cerchio. LabelIl controllo Label serve per visualizzare un qualsiasi messaggio o testo sulla superficie della windows form. Per questo progetto, occorre aggiungere una label all'interno del form designer e impostare il testo su "Introdurre il raggio di un cerchio:". Poichè questo tipo di controllo è utilizzatissimo, è inutile assegnare un nome significativo a ogni sua istanza, a meno che non la si debba modificare durante l'esecuzione del programma. Solo due proprietà meritano di essere menzionate:
TextBoxCostituisce il controllo di input per eccellenza, il più usato in tutte quelle situazioni che richiedono all'utente di immettere dati. Le proprietà rilevanti sono:
Finire il programma di calcoloUltima cosa essenziale per concludere il programma è un pulsante che avvii il calcolo, altrimenti non si potrebbe sapere quando l'utente ha finito l'immissione e vuole conoscere il risultato. Dopo aver aggiunto il button btnArea, la finestra sarà simile a questa:Doppio click sul pulsante per aprire l'editor di codice sull'evento Click di btnArea: Public Class Form1 Private Sub btnArea_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnArea.Click Dim Radius As Single = txtRadius.Text Dim Area As Single Area = Radius ^ 2 * Math.PI MessageBox.Show("L'area del cerchio è " & Area & ".", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Information) End Sub End ClasPrima di far correre il programma, bisogna ricordarsi che i numeri decimali immessi in input devono avere la virgola, e non il punto. Da notare che abbiamo assegnato una stringa a un valore single: come già detto, in VB.NET, le conversioni implicite vengono eseguite automaticamente quando sono possibili e Option Strict è disattivata. Tuttavia, se l'utente immettesse una parola, il programma andrebbe in crash: vediamo quindi di raffinare il codice così da intercettare l'eccezione generata. Public Class Form1 Private Sub btnArea_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnArea.Click Try Dim Radius As Single = txtRadius.Text Dim Area As Single Area = Radius ^ 2 * Math.PI MessageBox.Show("L'area del cerchio è " & Area & ".", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Information) Catch ICE As InvalidCastException MessageBox.Show("Inserire un valore numerico valido!", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub End ClassMa non basta ancora. I numeri negativi o nulli vengono comunque accetati, ma per definizione una lunghezza non può avere misura non positiva, perciò: Public Class Form1 Private Sub btnArea_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnArea.Click Try Dim Radius As Single = txtRadius.Text If Radius <= 0 Then Throw New ArgumentException() End If Dim Area As Single Area = Radius ^ 2 * Math.PI MessageBox.Show("L'area del cerchio è " & Area & ".", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Information) Catch ICE As InvalidCastException MessageBox.Show("Inserire un valore numerico valido!", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error) Catch AE As ArgumentException MessageBox.Show("Il raggio non può essere negativo o nullo!", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation) End Try End Sub End Class
C#, TypeScript, java, php, EcmaScript (JavaScript), Spring, Hibernate, React, SASS/LESS, jade, python, scikit, node.js, redux, postgres, keras, kubernetes, docker, hexo, etc...
|