Visual Basic/MessageBox
Wat is een MessageBox?
[bewerken]Een messageBox is een apart venster dat op commando getoond wordt. Het venster bevat een kopregel, een icoontje, een tekst en één of meer knoppen.
Een messageBox wordt onder andere gebruikt in de volgende gevallen:
- melden van een fout
- vragen of een bepaalde actie wel of niet moet worden uitgevoerd
Als de gebruiker op één van de knoppen klikt, wordt de MessageBox gesloten. Het programma kan daarna testen welke knop is aangeklikt.
Een MesssageBox kun je niet in de Designer gebruiken en wordt pas aangemaakt als het programma loopt.
Tonen van een MessageBox
[bewerken]Een MessageBox wordt op het scherm getoond door de methode Show aan te roepen. De methode Show heeft één vaste parameter en maximaal drie optionele parameters. De volledige vorm is:
Messagebox.Show(tekst, kopregel, knoppen, icoon)
Een MessageBox geeft altijd een resultaat terug. Daarom moet je altijd een variabele declareren van het type DialogResult, waarin het resultaat wordt opgeslagen (zie hieronder).
Een MessageBox wordt op het scherm getoond door de methode Show aan te roepen. De meest gebruikte vorm is:
Dim resultaat As DialogResult resultaat = MessageBox.Show(tekst, kopregel, knoppen, icoon)
De verschillende parameters hebben de volgende betekenis:
tekst | De tekst die in de MessageBox getoond wordt |
kopregel | de tekst dit in de titelbalk van de MessageBox getoond wordt |
knoppen | een waarde van het type MessageBoxButton (zie hieronder) |
icoon | een waarde van het type MessageBoxIcon (zie hieronder) |
De knoppen van een MessageBox
[bewerken]In de aanroep van de MessageBox kun je aangeven welke knop of knoppen getoond moeten worden. Dit gebeurt in het volgende formaat:
MessageBoxButton.xxx
Hierbij kan xxx de volgende tekst zijn:
Tekst | Betekenis |
---|---|
OK | één knop met de tekst OK |
OKCancel | twee knoppen met de teksten OK en Cancel |
YesNo | twee knoppen met de teksten Yes en No |
YesNoCancel | drie knoppen met de teksten Yes, No en Cancel |
RetryCancel | twee knoppen met de teksten Retry en Cancel |
AbortRetryIgnore | drie knoppen met de teksten Abort, Retry en Ignore |
Het icoon van de MessageBox
[bewerken]In de aanroep van de MessageBox kun je aangeven wel icoon vóór de tekst getoond moet worden. Dit gebeurt in het volgende formaat:
MessageBoxIcon.xxx
Hierbij kan xxx de volgende tekst zijn (vaak heb je de keuze uit meerdere teksten):
Tekst | Icoon | Betekenis |
---|---|---|
Asterisk Information |
een ballon met uitroepteken | om de gebruiker ergens over te informeren |
Error Hand Stop |
een cirkel met een kruis erin | bij een fout of de dreiging van een fout |
Exclamation Warning |
een driehoek met een uitroepteken | om de gebruiker ergens voor te waarschuwen |
None | geen icoon | |
Question | een ballon met een vraagteken | er wordt een vraag gesteld aan de gebruiker |
Het resultaat van de methode Show
[bewerken]Als je meerdere knoppen in je MessageBox hebt, wil je natuurlijk weten welke knop is aangeklikt. Daarom geeft de methode een resultaat terug. Deze heeft de volgende waarde:
DialogResult.xxx
Hierbij kan xxx de volgende tekst hebben:
Tekst(en) | Betekenis |
---|---|
None | er is (nog) geen waarde teruggegeven; de MessageBox is nog niet gesloten |
OK | OK aangeklikt |
Cancel | Cancel aangeklikt |
Abort | Abort aangeklikt |
Retry | Retry aangeklikt |
Ignore | Ignore aangeklikt |
Yes | Yes aangeklikt |
No | No aangeklikt |
Voorbeelden MessageBox
[bewerken]Je kunt het resultaat van een MessageBox direct testen in een If-instructie of eerst opslaan in een variabele. De laatste mogelijkheid is de enige mogelijkheid als je drie knoppen hebt.
In dit voorbeeld wordt alleen een OK-knop gebruikt en hoef je het resultaat niet te gebruiken.
Messagebox.Show("De berekening is uitgevoerd", "Klaar", MessageBoxButtons.OK, MessageBoxIcon.Information)
In het volgende voorbeeld worden zowel de Yes- als No-knop gebruikt. Omdat er maar twee mogelijkheden zijn, kun je een If-instructie gebruiken:
If MessageBox.Show("Wilt u dit gegeven verwijderen?", "Verwijderen", MessageBoxButtons.YesNo, _ MessageBoxIcon.Question) = DialogResult.Yes Then ' verwijder gegeven End If
In het volgende voorbeeld worden de knoppen Yes, No en Cancel gebruikt. Ook wordt de vierde parameter weggelaten, waardoor er geen icoon wordt getoond:
Dim resultaat As DialogResult resultaat = MessageBox.Show("Wat wilt u?", "Keuze", MessageBoxButtons.YesNoCancel) If resultaat = DialogResult.Yes Then 'verwerk Yes End If If resultaat = DialogResult.No Then ' verwerk No End If If resultaat = Dialog.Result.Cancel Then ' verwerk Cancel End If