Casino online











Mercato forex






B3. 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.


Label
Il 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. La prima è AutoSize, che permette alla label di autoridimensionarsi sulla base della lunghezza del testo: se impostato su False, invece, sarà possibile determinare in fase disviluppo i margini predefiniti entro i quali dovrà stare il testo. AutoSize è molto importante quando si ha a che fare con l'allineamento: infatti, poichè la label viene ridimensionata automaticamente, non si nota alcun tipo di allineamento; mentre, se è impostata a False, è possibile allineare il testo. Quest'ultima impostazione si ottiene modificando la seconda proprietà più importante: TextAlign.
Dopo aver modificato le proprietà del form come nella lezione scorsa, l'interfaccia si presenterà pressapoco così:


Una label


TextBox
Costituisce il controllo di input per eccellenza, il più usato in tutte quelle situazioni che richiedono all'utente di immettere dati. Le proprietà rilevanti sono:
  • MaxLength : massima lunghezza del testo, in caratteri.
  • AutoCompleteMode : modalità di autocompletamento. Fra i pregi della TextBox vi è la possibilità di "suggerire" all'utente cosa digitare nel caso le prime lettere premute corrispondano all'inizio di una delle parole che il programma ha già elaborato. Per fare un esempio pratico, si comporta allo stesso modo del sistema di composizione T9 dei cellulari, in cui il resto della parola viene "suggerita" prima del suo completamento. L'enumeratore può assumere quattro valori: None (assente), Suggest (viene suggerita la parola facendo apparire sotto la textbox un menù a discesa con tutte le possibili varianti), Append (viene suggerita la parola accodando alle lettere digitate il pezzo mancante evidenziato il blu), AppendSuggest (un'unione di entrambe le precedenti opzioni).
  • AutoCompleteSource : fonte dalla quale prelevare le parole dell'autocompletamento. I valori predefiniti indicano risorse di sistema, quali la cronologia (HistoryList, nel caso, ad esempio, la textbox funga da contenitore di indirizzi internet), le cartelle (FileSystemDirectories, ad esempio per facilitare l'immissione di un percorso da tastiera), i file (FileSystem), i files o i programmi aperti di recente (RecentlyUsedList), oppure tutti questi insieme (AllSystemResources). Se impostato su CustomSource, sarà la proprietà AutoCompleteCustomSource a determinare la fonte da cui attingere informazioni.
  • CharacterCasing : indica il casing delle lettere. Ci sono tre valori possibili: None (tutte le lettere vengono lasciate così come sono), Upper (tutte le lettere sono convertite in maiuscole) o Lower (tutte in minuscole).
  • Lines : restituisce un array di stringhe rappresentanti tutte le righe di testo della textbox, nel caso di una textbox Multiline.
  • Multiline : se impostata su True, la textbox sarà ridimensionabile e l'utente potrà inserire un testo che comprende più righe. Quando la proprietà è False, il carattere "a capo" viene respinto.
  • PasswordChar : un valore di tipo Char che determina il carattere da visualizzare al posto delle lettere qualora la textbox debba contenere una password. In questo modo si evita che occhi indiscreti possano intravedere le stringhe digitate.
  • ReadOnly : determina se l'utente può modificare il testo della textbox
  • ScrollBars : proprietà enumerata che specifica se le barre di scorrimento devono essere presente. L'enumeratore accetta quattro valori: None (nessuna scrollbar), Vertical (solo verticale), Horizontal (solo orizzontale), Both (entrambe).
Ora aggiungiamo una textbox di nome txtRadius, appena sotto la label.


Finire il programma di calcolo
Ultima 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 cmdArea, la finestra sarà simile a questa:


Finestra completa

Doppio click sul pulsante per aprire l'editor di codice sull'evento Click di cmdArea:
Private Sub cmdArea_Click(ByVal sender As Object, ByVal e As EventArgs) _
    Handles cmdArea.Click
    Dim R, Area As Single
    R = txtRadius.Text
    'Raggio alla seconda per pi greco, si può scrivere anche:
    'Area = R ^ 2 * Math.PI
    Area = R * R * Math.PI
    MessageBox.Show("L'area del cerchio di raggio " & R & " è " & Area, _ 
    "Area", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub 
Prima di far correre il programma, ricordarsi che i numeri decimali immessi in input devono avere la virgola, e non il punto.
Da notare che si è assegnato una stringa a un valore single: come già detto, Vb.Net esegue automaticamente le conversioni quando sono possibili. Tuttavia se l'utente immettesse una parola il programma andrebbe in crash: vediamo quindi di raffinare il codice così da intercettare l'eccezione generata.
Private Sub cmdArea_Click(ByVal sender As Object, ByVal e As EventArgs) _
    Handles cmdArea.Click
    Try
        Dim R, Area As Single
        R = txtRadius.Text
        'Raggio alla seconda per pi greco, si può scrivere anche:
        'Area = R ^ 2 * Math.PI
        Area = R * R * Math.PI
        MessageBox.Show("L'area del cerchio di raggio " & R & " è " & Area, _
        "Area", MessageBoxButtons.OK, MessageBoxIcon.Information)
    Catch Ex As Exception
        'Con la reflection prendiamo il nome dell'eccezione
        'generata e lo impostiamo come titolo
        MessageBox.Show("Il valore immesso non è corretto!", _
        Ex.GetType.Name, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
    End Try
End Sub 






 

The Totem's Lair - Copyright (C) 2009
È vietata la riproduzione sia totale che parziale del sito.