Per vedere l’elenco degli eventi ai quali può rispondere un controllo
Esercizio 8: La proprietà Anchor
Apriamo un nuovo progetto e inseriamo nel Form1 un controllo Label (contenitore di testo) in alto a sinistra:
Capitolo 6: I CONTROLLI COMUNI.
Facciamo un clic su questa Label1 e, nella Finestra Proprietà, impostiamo la sua proprietà AutoSize = False, in modo da visualizzare le maniglie di dimensionamento di questo controllo:
Facciamo un clic sul pulsante con la freccina nera che si trova a destra nella riga della proprietà Text della Label1:
Capitolo 6: I CONTROLLI COMUNI.
Nel riquadro che si apre, incolliamo questo testo:
Quel ramo del lago di Como, che volge a mezzogiorno, tra due catene non interrotte di monti, tutto a seni e a golfi, a seconda dello sporgere e del rientrare di quelli, vien quasi a un tratto, tra un promontorio a destra e un'ampia costiera dall'altra parte; e il ponte, che ivi congiunge le due rive par che renda ancor più sensibile all'occhio questa trasformazione e segni il punto in cui il lago cessa, e l'Adda ricomincia per ripigliar poi nome di lago dove le rive, allontanandosi di nuovo, lascian l'acqua distendersi e rallentarsi in nuovi golfi e in nuovi seni...
Capitolo 6: I CONTROLLI COMUNI.
Facciamo un clic sulla proprietà Anchor di questa Label1 e impostiamo la proprietà in modo da ancorare la Label a sinistra, in alto e a destra:
Con queste impostazioni di ancoraggio, durante l’esecuzione del programma, se cambieranno le dimensioni del Form1, le distanze della Label1 dai bordi sinistro, superiore e destro del Form1 rimarranno immutate (in pratica, la Label1 sarà costretta ad allargarsi seguendo lo spostamento del margine destro del Form1).
Capitolo 6: I CONTROLLI COMUNI.
Facciamo un clic sul pulsante appena inserito e nella Finestra Proprietà, impostiamo la sua proprietà Text = Esci e la proprietà Anchor come in questa immagine:
In questo modo ancoriamo il Button1 al margine destro ed al margine inferiore del form. Questo vuol dire che, in fase di esecuzione del progetto, se cambieranno le dimensioni del Form1, le distanze del Button1 dal margine destro e dal margine inferiore del form rimarranno immutate.
Ora facciamo un clic sul Form1 e nella Finestra Proprietà impostiamo la sua proprietà Font = Microsoft Sans Serif a 14 punti.
Siccome la proprietà AutoScaleMode del Form1 è impostata su Font (vale a dire che il Form1 è predisposto per adattarsi alla larghezza del set di caratteri scelti dal
Capitolo 6: I CONTROLLI COMUNI.
programmatore), notiamo che il Form1 e tutto il suo contenuto si adattano alla nuova grandezza del form.
Mandiamo in esecuzione il progetto e proviamo a modificare le dimensioni del form. Notiamo che la Label1 rimane sempre nell’angolo in alto a sinistra del form, ma segue a destra l’ampliamento del form, modificando la sua larghezza per mantenere costante la sua distanza dal margine destro del form; notiamo inoltre che il Button1 rimane sempre nell’angolo basso a destra del form, e le sue distanze dai margini del form non cambiano con il mutare delle dimensioni del form.
Fermiamo l’esecuzione del programma con un clic sul pulsante Termina debug. Completiamo il programma scrivendo, nella Finestra del Codice, una procedura affinché il programma termini quando l’utente preme il pulsante Button1 (Esci). Facciamo un doppio clic con il mouse sul pulsante Esci e accediamo alla Finestra Proprietà.
Qui troviamo, già impostata, la procedura che gestisce l’evento del clic del mouse sul pulsante Button1:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click End Sub
Nella riga centrale, vuota, scriviamo il comando End, che farà terminare il programma quando l’utente cliccherà questo pulsante:
Capitolo 6: I CONTROLLI COMUNI.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click End
End Sub
AutoEllipsis
La proprietà AutoEllipsis, se impostata = True (vero), fa comparire nel testo di un controllo i tre puntini di sospensione, quando il testo è troppo lungo per essere visualizzato interamente.
Ad esempio, se assegniamo a un Button1 il testo “Questo è il pulsante Button1” e ne impostiamo la proprietà AutoEllipsis = True (vero), vediamo comparire all’interno del Button1 solo la parola “Questo …” con i tre puntini di sospensione, perché il testo è troppo lungo per essere visualizzato per intero.
Il testo che compare abbreviato all’interno del Button1 compare comunque per intero nel ToolTipText dello stesso Button1, cioè nel piccolo riquadro che viene visualizzato temporaneamente quando il mouse passa sopra il pulsante:
Figura 77: La proprietà AutoEllipsis.
AutoSize
La proprietà AutoSize indica se il controllo si deve adeguare o meno al suo contenuto. Nel caso del Button1 con il testo “Questo è il pulsante Button1”, se la proprietà AutoSize è impostata su True (vero), le dimensioni del Button1 si allargano sino a mostrare tutto il testo.
Capitolo 6: I CONTROLLI COMUNI.
Con questa impostazione, però, il programmatore non ha più la facoltà di modificare le dimensioni del controllo a suo piacere e, per questo motivo, nel controllo in questione non compaiono più le maniglie di dimensionamento.
Figura 78: La proprietà AutoSize.
AutoSizeMode
La proprietà AutoSizeMode indica se la proprietà AutoSize (adattamento al contenuto del controllo) si applica solo in una direzione (allargare il controllo) oppure in due direzioni (allargare o ridurre il controllo secondo le dimensioni del testo).
La proprietà AutoSizeMode dunque è attiva solo se la proprietà AutoSize è impostata come True (vero) e può essere impostata a sua volta in due modalità:
GrowOnly: il controllo si adatta al suo contenuto solo allargandosi;
GrowAndShrink: il controllo si adatta al contenuto allargandosi o restringendosi. Supponiamo di avere un controllo Button1 il cui testo sia la lettera “x”. Se la proprietà AutoSize è impostata su True e se la proprietà AutoSizeMode è impostata su GrowAndShrink, il risultato è questo:
Capitolo 6: I CONTROLLI COMUNI.
Figura 79: La proprietà AutoSizeMode impostata su GrowAndShrink.
BackColor
La proprietà Backcolor imposta il colore dello sfondo del controllo.
BackgroundImage
La proprietà BackgroundImage imposta la scelta di un’immagine da utilizzare come sfondo per il controllo.
BackgroundImageLayout
La proprietà BackgroundImageLayout indica come deve essere impostata, all’interno del controllo, la visualizzazione della immagine di sfondo: a mattonelle, al centro del form, adattata alle misure del form, ingrandita.
Le proprietà BackColor, BackGroudImage e BackgroundImageLayout sono illustrate nel paragrafo 24: Le proprietà del form nella fase di progettazione. 107.
Cursor
La proprietà Cursor imposta la scelta di un cursore per il controllo. Il cursore scelto è visualizzato, nella fase di esecuzione del programma, quando il mouse passa sopra il controllo.
Capitolo 6: I CONTROLLI COMUNI.
Dock
La proprietà Dock (ormeggia) indica che il controllo va a occupare un intero lato del form (come una nave si ormeggia di fianco a un molo in un porto): in alto, in basso, a sinistra o a destra.
Le dimensioni del controllo ormeggiato cambieranno, in fase di esecuzione del programma, assieme alle eventuali modifiche delle dimensioni del form.
Le impostazioni della proprietà Dock sono: Top (il controllo è ormeggiato in alto);
Right (il controllo è ormeggiato sul lato destro del form); Bottom (il controllo è ormeggiato in basso);
Left (il controllo è ormeggiato sul lato sinistro del form);
Fill (il controllo è ormeggiato al centro e occuperà tutto lo spazio del form); None (il controllo non è ormeggiato).
Figura 80: L’impostazione della proprietà Dock.
DoubleBuffered
La proprietà DoubleBuffered, se impostata = True, impone l’uso di un doppio spazio di memoria per l’effettuazione di operazioni grafiche. Il tempo richiesto per l’esecuzione di queste operazioni viene così ampliato, ma le operazioni grafiche risultano più stabili all’occhio umano; in particolare, viene eliminato l’effetto dello sfarfallìo di un’immagine, quando questa subisce modifiche in rapida sequenza.
Capitolo 6: I CONTROLLI COMUNI.
La proprietà DoubleBuffered sarà ampiamente utilizzata, in questo manuale, soprattutto per i form, nella parte dedicata alla grafica.
Enabled
La proprietà Enabled indica se un controllo è attivo (Enabled = True, il controllo è in funzione e dunque risponde agli eventi) oppure no (Enabled = False).
Un controllo la cui proprietà Enabled è impostata come False rimane visibile sul form in modo sfumato, e non risponde ai movimenti del mouse o alla pressione dei tasti sulla tastiera, anche se per questi eventi sono scritte apposite procedure nel codice.
Durante l’esecuzione di un progetto, a seconda delle istruzioni scritte dal programmatore, un controllo può passare temporaneamente dalla impostazione Enabled = True alla impostazione Enabled = False e viceversa.
FlatAppearance
FlatStyle
La proprietà FlatStyle determina l’aspetto che un controllo assume al passaggio del mouse.
La proprietà FlatStyle può essere impostata in quattro modi diversi, tra i quali è particolarmente interessante l’impostazione Flat.
Con la proprietà FlatStyle impostata come Flat, infatti, è possibile impostare la proprietà FlatAppearance, che consente di scegliere i colori di primo piano, dello sfondo e del contorno di un controllo impostato come Flat.
Il controllo si presenta in questo modo piatto, ma il gioco dei colori può creare degli effetti grafici gradevoli e utili in particolare nei programmi per bambini.
Capitolo 6: I CONTROLLI COMUNI.
Figura 81: L’impostazione delle proprietà FlatStyle e FlatAppearance.
Font
La proprietà Font determina il tipo e le caratteristiche del carattere di scrittura di eventuali testi all’interno del controllo.
Nella casella a destra della proprietà Font compare un pulsante con tre puntini. Cliccando questo pulsante si apre la finestra per la selezione del tipo di carattere, nella quale si opera come in un programma di elaborazione di testi.
I controlli presenti in un form assumono tutti il tipo e le caratteristiche del font scelto per il form, a meno che vi siano impostazioni diverse per ogni controllo.
Se la proprietà AutoScaleMode di un form è impostata = Font, le dimensioni del form e di tutti i controlli in esso contenuti cambiano con il variare delle dimensioni del Font scelto.
ForeColor
La proprietà ForeColor imposta il colore del testo che compare in primo piano all’interno del controllo.
Capitolo 6: I CONTROLLI COMUNI.