|
Textbox multiriga e limitazione della lunghezza del
testo
Per default una casella di testo non permette di andare a capo, ma il testo viene
Fig. 1: Per modificare il testo utilizzare la finestra proprietà del TextBox. |
visualizzato su un'unica riga che scorre verso sinistra nel momento in cui viene
raggiunto il margine del controllo. Per creare un TextBox, che assomigli ad un classico
programma di elaborazione testi, è sufficiente impostare la proprietà MultiLine pari a
True e la proprietà ScrollBars a 3-Both. In questo modo appaiono le barre di scorrimento
orizzontale e verticale che permettono di scorrere il TextBox in modo da visualizzare un
testo più lungo rispetto alle dimensioni del controllo. Se si pone la proprietà
ScrollBars a 2-Vertical verrà visualizzata soltanto la barra verticale ottenendo
leffetto di mandare automaticamente a capo il testo che viene digitato, nel momento
in cui diventa più lungo del controllo. Nel caso precedente con la proprietà ScrollBars
= 3-Both la funzione di ritorno a capo automatico viene disabilitata perciò per passare
alla riga successiva si deve premere il tasto Invio. Naturalmente le barre di scorrimento
vengono visualizzate soltanto se la proprietà MultiLine è pari a True. VB non offre
nessuna facility per la gestione delle caselle di testo multiriga, pone anzi alcune
problematiche. Quando si utilizza un normale elaboratore di testo si usano con
indifferenza i tasti INVIO e TAB rispettivamente per andare a capo e per inserire un
carattere di tabulazione, ma in VB non è sempre possibile, in particolare: se nel form è
presente un CommandButton predefinito, premendo il tasto INVIO non si avrà il ritorno a
capo ma lazione del clic sul CommandButton; inoltre premendo il tasto Tab si ha
sempre leffetto di far passare il focus al controllo successivo presente nel form
(così come impone lo standard Windows). In molti casi non è possibile risolvere questi
problemi per questo è consigliabile avvisare lutente di usare i tasti Ctrl+Invio
per andare a capo e Ctrl+Tab per inserire i caratteri di tabulazione. Per limitare la
lunghezza del testo si può usare la proprietà MaxLenght in cui specificare il numero
massimo di caratteri che possono essere immessi nel TextBox. Quando lutente tenta di
digitare dei caratteri oltre il limite imposto da MaxLenght, viene emesso un bip e non
viene più accettato nessunaltro carattere. Per non imporre limiti al numero di
caratteri digitabili nel TextBox si deve porre MaxLenght pari a zero (valore di default).
Due novità di VB6: CausesValidation e Validate
Fino alluscita di VB6 il meccanismo di convalida dei dati dava luogo a notevoli
problemi, gli eventi deputati alla convalida erano Change oppure LostFocus che viene
generato dopo lo spostamento dello stato attivo ad un altro controllo. In VB6 si possono
utilizzare l'evento Validate e la proprietà CausesValidation per verificare l'input di un
controllo prima che lo stato attivo passi al controllo successivo. Quando il focus lascia
il controllo, VB controlla la proprietà CausesValidation del controllo che sta per
ricevere il focus. Se il valore di CausesValidation è pari a True allora viene attivato
levento Validate nel controllo che sta perdendo il focus, in questo modo è
possibile controllare da codice il contenuto e se necessario annullare lo spostamento del
focus impostando largomento Cancel=True. Con l'evento Validate, quindi, lo stato
attivo viene spostato su un altro controllo solo dopo che sono stati soddisfatti i criteri
di convalida dei dati.
Il controllo Label
Il controllo Label (etichetta) è solitamente usato per rendere più esplicativa
linterfaccia, ad esempio come didascalia di una casella di testo, e molto di rado
viene usato come oggetto programmabile. Così come il TextBox le Label possono
visualizzare un testo sullo schermo, la differenza sostanziale sta nel fatto che
lutente non può modificare il testo contenuto nel controllo. Come per il TextBox
sono disponibili numerose proprietà per modificare laspetto delletichetta
perciò saranno disponibili le proprietà Alignment, Font, BackColor, ForeColor ecc. Per
impostare il testo contenuto in una Label si deve usare la proprietà Caption, non è
presente, come per il TextBox, la proprietà Text. Se il testo contenuto nella Label è
particolarmente lungo oppure se varia la sua lunghezza da programma, si può evitare che
venga troncato dal bordo destro della Label usando le proprietà: AutoSize per far sì che
il controllo si ridimensioni automaticamente adattandosi alla lunghezza della stringa;
WordWrap per permettere lestensione del testo su più righe. Naturalmente si deve
fare attenzione che le etichette non crescano troppo in modo da non coprire controlli
dellinterfaccia utente. Un caso tipico di programmazione di unetichetta è
quello in cui si vuole realizzare leffetto che si vede navigando in internet, di
etichette di colore diverso dalle altre che fanno cambiare la forma del mouse quando ci si
passa sopra per indicare che cliccando su di esse verrà effettuata una azione
(tipicamente si attiva un link ad un altro sito oppure si apre una finestra di dialogo).
Per ottenere questo effetto si può usare la proprietà MousePointer per modificare la
forma del mouse e scrivere il codice necessario nellevento click della label.
|
|
|