In Visual Basic .net la Funzione MsgBox di VB6 è stata sostituita dalla Classe MessageBox per l’esattezza dal metodo MessageBox.Show. Per ragioni oscure Microsoft ha voluto comunque mantenerla, anche se non integralmente (non c’è per esempio l’argomento timeout), a svolgere più o meno le stesse funzioni della classe MessageBox da cui in effetti dipende (un problema utilizzando MsgBox potrebbe essere l’eventuale conversione di VB Net nel linguaggio C#).
In questo articolo trattiamo
prima il metodo MessageBox e, visto che esiste, anche la funzione MsgBox che ha
comunque il vantaggio di essere più stringata e di occupare meno spazio-codice.
Per completare l'articolo abbiamo creato un'applicazione contenente tredici esempi. L'applicazione può essere scaricata al seguente indirizzo: MessageBoxSamples
Per completare l'articolo abbiamo creato un'applicazione contenente tredici esempi. L'applicazione può essere scaricata al seguente indirizzo: MessageBoxSamples
La sintassi del metodo MessageBox.Show :
MessageBox.Show(“Messaggio”, “Titolo
del Box”, MessageBoxButtons, MessageBoxIcon, _
MessageBoxDefaultButton, MessageBoxOption, “Path del File Help”)
Messaggio : è la comunicazione che si vuole
dare. Va posta tra due virgolette
Titolo del Box : compare nella testata del Box. Va posto tra due virgolette
Titolo del Box : compare nella testata del Box. Va posto tra due virgolette
MessageBoxButtons : determina quale delle 6 possibili serie di pulsanti
(vedi tab 1) verrà visualizzata.
Ad esempio MessageBoxButtons.OKOnly visualizzerà solo il pulsante OK.
Ad esempio MessageBoxButtons.OKOnly visualizzerà solo il pulsante OK.
Membro
|
Valore
|
Descrizione
|
OKOnly
|
O
|
Viene
visualizzato solo il pulsanteOK.
|
OKCancel
|
1
|
Vengono
visualizzati i pulsanti OK e Annulla.
|
AbortRetrylgnore
|
2
|
Visualizza
i pulsanti Interrompi, Riprova e Ignora.
|
YesNoCancel
|
3
|
Vengono
visualizzati i pulsanti Si, No e Annulla.
|
YesNo
|
4
|
Vengono
visualizzati i pulsanti Si eNo.
|
RetryCancel
|
5
|
Vengono
visualizzati i pulsanti Riprova e Annulla.
|
MessageBoxIcon : Determina quale delle 4
Icone (vedi tab 2) verrà visualizzata nel Box.
Ad esempio MessageBoxIcon.Question visualizzerà l’icona con il punto di domanda.
Ad esempio MessageBoxIcon.Question visualizzerà l’icona con il punto di domanda.
Membro
|
Icona
|
Valore
|
Descrizione
|
Error
(o Stop o Hand)
|
16
|
Viene
visualizzata l'icona del messaggio critico.
|
|
Question
|
32
|
Viene
visualizzata l'icona della domanda.
|
|
Exclamation
(o Warning)
|
|
48
|
Viene
visualizzata l'icona del messaggio di avviso.
|
Information
(o Asterisk)
|
|
64
|
Viene
visualizzata l'icona del messaggio informativo.
|
MessageBoxDefaultButton : determina quale
pulsante deve attivarsi premendo il tasto “invio” sulla tastiera (vedi tab 3).
Ad esempio MessageBoxDefaultButton.Button1 attiverà il primo pulsante.
Membro
|
Valore
|
Descrizione
|
Button1
|
O
|
Viene
impostato come predefinito il primo pulsante.
|
Button2
|
256
|
Viene
impostato come predefinito il secondo pulsante.
|
Button3
|
512
|
Viene
impostato come predefinito il terzo pulsante.
|
MessageBoxOption : Permette l’applicazione di ulteriori
istruzioni accessorie (vedi tab 4). Ad esempio MessageBoxOption.RightAlign allinea a destra il testo del messaggio.
|
Membro
|
Valore
|
Descrizione
|
|
ApplicationModal
|
O
|
Applicazione
di tipo modale. Per poter continuare a utilizzare l'applicazione corrente,
l'utente dovrà rispondere al messaggio.
|
|
SystemModal
|
4096
|
Sistema
di tipo modale. Tutte le applicazioni Vengono sospese fino a quando l'utente
non risponde alla finestra di messaggio.
|
|
MsgBoxSetForeground
|
65536
|
La
finestra di messaggio Viene visualizzata in primo piano.
|
|
MsgBoxRight
|
524288
|
Il
testo Viene allineato a destra.
|
|
MsgBoxRtlReading
|
1048576
|
Il
testo viene letto da destra a sinistra (per le lingue ebraica e arabe).
|
Tab4
Path del File Help : Questa stringa aggiunge un “?” ai pulsanti e permette di inserire il percorso di un eventuale file Help che viene quindi aperto cliccando il pulsante “?”. Va inserito tra virgolette. Ad esempio “C:\help.txt”
La tabella seguente riporta i valori restituiti dai vari pulsanti
Costanti
|
Valore
|
Descrizione
|
MsgBoxResult.OK (vbOK)
|
1
|
E’ stato premuto il tasto OK
|
MsgBoxResult.Cancel (vbCancel)
|
2
|
E’ stato premuto il tasto Annulla
|
MsgBoxResult.Abort (vbAbort)
|
3
|
E’ stato premuto il tasto Interrompi
|
MsgBoxResult.Retry (vbRetry)
|
4
|
E’ stato premuto il tasto Riprova
|
MsgBoxResult.Ignore (vbIgnore)
|
5
|
E’ stato premuto il tasto Ignora
|
MsgBoxResult.Yes (vbYes)
|
6
|
E’ stato premuto il tasto Si
|
MsgBoxResult.No (vbNo)
|
7
|
E’ stato premuto il tasto NO
|
Nella colonna Costanti sono riportate a sinistra le costanti utilizzate in MessageBox e a destra, fra le parentesi, quelle utilizzate in MsgBox. Per la questione di compatibilità VB6èVB Net queste ultime possono essere comunque utilizzate anche in MessageBox
Esempio:
If c = MsgBoxResult.Yes Then 'oppure If c = 6, oppure If c = vbYes
Label1.Text = "Hai premuto il pulsante SI"
Else
Label1.Text = "Non hai premuto il pulsante SI"
End If
Note
· Show è un metodo della classe MessageBox e rende visibile il Box con il messaggio e i pulsanti
· Di tutti gli argomenti previsti solo “Messaggio” è richiesto dalla sintassi; tutti gli altri sono opzionali.
· Se la sintassi è costituita dal solo “Messaggio” viene reso visibile il pulsante “OK”. La barra del titolo rimane vuota.
· Se la finestra di dialogo visualizza il pulsante Annulla, premere ESC ha lo stesso effetto della selezione Annulla
· Premere Invio significa cliccare sul pulsante posto come default
Esempio:
Dim c As String
c = MessageBox.Show("Clicca sul pulsante SI", "Titolo del Box", MessageBoxButtons.YesNo, _ MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)If c = MsgBoxResult.Yes Then 'oppure If c = 6, oppure If c = vbYes
Label1.Text = "Hai premuto il pulsante SI"
Else
Label1.Text = "Non hai premuto il pulsante SI"
End If
· Show è un metodo della classe MessageBox e rende visibile il Box con il messaggio e i pulsanti
· Di tutti gli argomenti previsti solo “Messaggio” è richiesto dalla sintassi; tutti gli altri sono opzionali.
· Se la sintassi è costituita dal solo “Messaggio” viene reso visibile il pulsante “OK”. La barra del titolo rimane vuota.
· Se la finestra di dialogo visualizza il pulsante Annulla, premere ESC ha lo stesso effetto della selezione Annulla
· Premere Invio significa cliccare sul pulsante posto come default
La sintassi della funzione MsgBox :
MsgBox(“Messaggio”, Argomento , “Titolo del Box”)
vbYesNo + vbQuestion + vbDefaultButton2) sia sommando i numeri corrispondenti.
Ad esempio se nel secondo argomento dopo il Messaggio scrivo 292 ottengo i due tasti Yes/No (=4), l’icona
Question (=32) e l’attivazione del Button 2 (=256). La sintassi può essere 4 + 32 + 256 oppure 292.
La stessa istruzione si può quindi scrivere in tre modi diversi:
A) MsgBox(“Questa è una prova?”, vbYesNo + vbQuestion + vbDefaultButton1, “Box di prova”)
B) MsgBox(“Questa è una prova?” , 4 + 32 + 256 , “Box di prova”)
C) MsgBox(“Questa è una prova?” , 292 , “Box di prova”)
Note
· L’istruzione A) richiede più testo ma è la più leggibile.
· La definizione di più argomenti può essere ottenuta utilizzando “Or” al posto del segno +
· Nello scrivere il codice la funzione Intellisense suggerirebbe, ad esempio in luogo dell’istruzione vbQuestion, la più ortodossa MsgBoxStyle.Question: danno lo stesso risultato ma con la prima istruzione (compatibilità con VB6!) c’è un evidente risparmio di spazio.
· Se la sintassi è costituita dal solo “Messaggio” verrà reso visibile il pulsante “OK”. La barra del titolo per default assume il nome dell’applicazione.
Membro
|
Valore
|
Descrizione
|
vbOKOnly
|
O
|
Viene visualizzato solo il pulsanteOK.
|
vbOKCancel
|
1
|
Vengono visualizzati i pulsanti OK e Annulla.
|
vbAbortRetrylgnore
|
2
|
Visualizza i pulsanti Interrompi, Riprova e Ignora.
|
vbYesNoCancel
|
3
|
Vengono visualizzati i pulsanti Si, No e Annulla.
|
vbYesNo
|
4
|
Vengono visualizzati i pulsanti Si eNo.
|
vbRetryCancel
|
5
|
Vengono visualizzati i pulsanti Riprova e Annulla.
|
Icone
Membro
|
Icona
|
Valore
|
Descrizione
|
vbCritical
|
16
|
Viene visualizzata l'icona del messaggio critico.
| |
vbQuestion
|
32
|
Viene visualizzata l'icona della domanda.
| |
vbExclamation
|
|
48
|
Viene visualizzata l'icona del messaggio di avviso.
|
vbInformation
|
|
64
|
Viene visualizzata l'icona del messaggio informativo.
|
DefaultButton
Membro
|
Valore
|
Descrizione
|
DefaultButton1
|
O
|
Viene impostato come predefinito il primo pulsante.
|
DefaultButton2
|
256
|
Viene impostato come predefinito il secondo pulsante.
|
DefaultButton3
|
512
|
Viene impostato come predefinito il terzo pulsante.
|
Esempio:
MsgBox(“Vuoi continuare?”, vbYesNo + vbQuestion + vbDefaultButton1, “Scelta”)
Valore restituito
Constant
|
Valore
|
Descrizione
|
vbOK
|
1
|
E’ stato premuto il tasto OK
|
vbCancel
|
2
|
E’ stato premuto il tasto Annulla
|
vbAbort
|
3
|
E’ stato premuto il tasto Interrompi
|
vbRetry
|
4
|
E’ stato premuto il tasto Riprova
|
vbIgnore
|
5
|
E’ stato premuto il tasto Ignora
|
vbYes
|
6
|
E’ stato premuto il tasto Si
|
vbNo
|
7
|
E’ stato premuto il tasto NO
|






Nessun commento:
Posta un commento