9 set 2013

MessageBox & MsgBox

Quasi tutto ciò che vorreste sapere

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#).
Per inciso Microsoft raccomanda di usare la classe MessageBox.


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















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



MessageBoxButtons : determina quale delle 6 possibili serie di pulsanti (vedi tab 1) verrà visualizzata.
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. 
  
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.
Tab2


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.
Tab3

 


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”


Valore restituito

 Cliccando su un pulsante del MessageBox viene restituito un intero che definisce il pulsante cliccato.
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:




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

 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
 





La sintassi della funzione MsgBox :

MsgBox(“Messaggio”, Argomento , “Titolo del Box”)

Gli argomenti accettati sono tre ma in pratica sono di più perché il secondo Argomento può essere la somma di più Argomenti. La somma può essere eseguita sia scrivendo testualmente i membri dei vari argomenti (es 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.
 Di seguito vengono riportate le tabelle già viste in MessageBox e adattate a MsgBox

Pulsanti

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