Il controllo CommandButton
La metafora del pulsante è sicuramente la più usata in VB, in generale il CommandButton
è utilizzato con una didascalia ed unimmagine che fanno comprendere immediatamente
allutente lazione che verrà generata quando il pulsante verrà premuto. Per
modificare letichetta del pulsante si deve usare la proprietà Caption.
Levento per antonomasia del CommandButton è levento Click, ed in questo
evento si dovrà scrivere il codice di risposta:
Private Sub Command1_Click()
'inserire qui il codice di risposta all'evento
End Sub
|
Per inserire unimmagine nel pulsante si deve cambiare la proprietà Style in
1-Graphical e si deve cliccare sulla proprietà Picture, in modo da far apparire la
finestra di dialogo in cui selezionare limmagine (Bitmap, icona, metafile, GIF,
JPEG). Per migliorare linterfaccia si possono assegnare delle icone da visualizzare
quando il pulsante viene premuto, con la proprietà DownPicture, e limmagine da
visualizzare quando il pulsante non è abilitato (per disabilitare un controllo si pone la
proprietà enabled = False) con la proprietà DisabledPicture. Queste tre proprietà
possono essere modificate in fase di esecuzione con il comando:
Command1.Picture=LoadPicture(c:\Icone\MiaIcona.ico)
|
Oppure usando il controllo ImageList che vedremo nei prossimi articoli. Impostando la
proprietà Default su True è possibile definire un pulsante come pulsante di default, in
modo che se lutente preme il tasto INVIO da un qualsiasi punto della finestra il
controllo passi al pulsante attivando levento Click. Si deve fare particolare
attenzione a definire un pulsante come pulsante di default poiché lutente può
essere portato ad usare il tasto INVIO per passare da un campo ad un altro attivando il
pulsante di default senza rendersene conto, perciò se il pulsante deve compiere
unoperazione potenzialmente dannosa per lapplicazione (ad esempio chiudere una
finestra senza salvare i dati) è sempre auspicabile visualizzare un messaggio di avviso
per poter eventualmente annullare loperazione. Impostando la proprietà Cancel su
True il pulsante verrà attivato quando viene premuto il tasto ESC, questo è il tipico
caso di un pulsante Annulla. Introduciamo ora un argomento differente dai controlli
intrinseci ma che è presente in quasi tutte le applicazioni.
La finestra Message box
La finestra MsgBox è una tipica finestra modale (ricordate che una finestra modale impone
una risposta allutente prima che il controllo ritorni allapplicazione) che
consente la realizzazione di dialoghi standard con lutente con una serie di otto
possibili risposte (si, no, ok,..) utilizzando una sola riga di codice. La sintassi è:
MsgBox(prompt[, buttons] [, title] [, helpfile, context])
|
Lunico parametro obbligatorio è prompt, una stringa che rappresenta il messaggio
visualizzato nella finestra di dialogo. E possibile visualizzare il messaggio su
più righe in questo caso si deve includere, tra ciascuna riga ,il carattere di ritorno a
capo Chr(13).
Gli altri parametri non sono obbligatori ma rendono
Fig. 2: La funzione associata alla MsgBox dovrà restituire un
valore integer per indicare quale pulsante è stato premuto. |
più efficace il messaggio, è possibile infatti visualizzare accanto al messaggio una
icona e dei pulsanti di scelta indicando un singolo valore numerico. Se viene omesso tale
parametro verrà visualizzato soltanto un pulsante di Ok. E possibile, inoltre,
indicare una stringa da visualizzare nella barra del titolo della finestra, se title viene
omesso verrà visualizzato il nome del progetto. Si possono inoltre specificare helpfile e
context per specificare il file di help per ottenere informazioni di aiuto sensibili al
contesto. Ritorniamo al concetto precedente: indicando un singolo valore numerico possono
essere visualizzati una icona e più pulsanti sulla finestra, questo è possibile
indicando un valore che è la somma dei valori che specificano il numero e il tipo di
pulsante da visualizzare. Naturalmente è possibile usare delle costanti più esplicative
di un numero ad es. VbYesNo (4) visualizza i pulsanti Sì e No. MsgBox può essere usato
sia come funzione sia come subroutine, se si utilizzano le parentesi per racchiudere gli
argomenti, MsgBox sarà una funzione che restituisce un valore Integer per indicare quale
pulsante è stato premuto (Fig 2) :
Risposta= MsgBox ("Sei sicuro di voler continuare ?",
vbYesNo + vbQuestion, "Attenzione")
|
Se non si utilizzano le parentesi viene semplicemente visualizzato il messaggio
MsgBox "Errore Irreversibile", vbCritical, "Attenzione"
|