VB I controlli di VB6 pg7
Il controllo CommandButton
La metafora del pulsante è sicuramente la più usata in VB, in generale il CommandButton è utilizzato con una didascalia ed un’immagine che fanno comprendere immediatamente all’utente l’azione che verrà generata quando il pulsante verrà premuto. Per modificare l’etichetta del pulsante si deve usare la proprietà Caption. L’evento per antonomasia del CommandButton è l’evento 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 un’immagine 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 l’immagine (Bitmap, icona, metafile, GIF, JPEG). Per migliorare l’interfaccia si possono assegnare delle icone da visualizzare quando il pulsante viene premuto, con la proprietà DownPicture, e l’immagine 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 l’utente preme il tasto INVIO da un qualsiasi punto della finestra il controllo passi al pulsante attivando l’evento Click. Si deve fare particolare attenzione a definire un pulsante come pulsante di default poiché l’utente 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 un’operazione potenzialmente dannosa per l’applicazione (ad esempio chiudere una finestra senza salvare i dati) è sempre auspicabile visualizzare un messaggio di avviso per poter eventualmente annullare l’operazione. 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 all’utente prima che il controllo ritorni all’applicazione) che consente la realizzazione di dialoghi standard con l’utente con una serie di otto possibili risposte (si, no, ok,..) utilizzando una sola riga di codice. La sintassi è:

MsgBox(prompt[, buttons] [, title] [, helpfile, context])


L’unico 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"