C# – Hinweisfenster (MessageBox)

Welcher Windows-Nutzer kennt sie nicht? Die Hinweisfenster, die den Nutzer über die unterschiedlichsten Dinge informieren, sei es ein aufgetretener Fehler oder die Speicherung einer Datei. Dieser Artikel widmet sich der Frage, wie man in C# für eine Windows-Forms-Anwendung solche Fenster erzeugen kann.

Der Code für ein einfaches Fenster, das mit einem Klick auf „OK“ geschlossen werden kann, ist denkbar einfach. Im folgenden Beispiel soll der Hinweis „Die Anwendung wird nun beendet!“ angezeigt werden:

Hinweisfenster einer Windows-Forms-Anwendung
private void CmdFirstBox_Click(object sender, EventArgs e)
{
    MessageBox.Show("Die Anwendung wird nun beendet!", 
        "Hinweis", MessageBoxButtons.OK);
}

Wie Ihr sehen könnt, wird die Klasse MessageBox zusammen mit der Methode Show benötigt. Dazu kommen folgende Parameter:

  • die Information an den Nutzer,
  • der Titel des Fensters und
  • der anzuzeigende Button.

Hinweisfenster haben häufig ein Icon. Dafür muss lediglich der Parameter MessageBoxIcon hinzugefügt werden.

private void CmdSecondBox_Click(object sender, EventArgs e)
{
    MessageBox.Show("Die Anwendung wird nun beendet!", 
    "Hinweis", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

Für dieses Info-Icon kommt die Methode Information zum Einsatz. Freilich können auch andere Icons angezeigt werden. Anstatt an dieser Stelle diese Icons aufzuzählen, möchte ich auf IntelliSense verweisen. Dies ist die in Visual Studio zur Verfügung stehende Auto-Vervollständigung. Sobald Ihr MessageBoxButtons. eingegeben habt, erhaltet Ihr eine Auswahl der vorhanden Methoden, sprich Icons.

IntelliSense in Visual Studio

Bleibt noch zu klären, wie man dem Nutzer eine Auswahlmöglichkeit bieten kann, z.B. in Form von Ja-Nein-Buttons. Hier ist der Code:

private void CmdThirdBox_Click(object sender, EventArgs e)
{
    DialogResult result =  MessageBox.Show("Soll Festplatte C: wirklich formatiert werden?",
            "Warnung", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);

    if (result == DialogResult.Yes)
    {
        // do something
    }
    else
    {
        // do something
    }
}

Und so sieht das Fenster aus:

MessageBox mit Icon

Die Beispiele zeigen, dass das Erstellen von Hinweisfenstern sehr einfach ist. Und dank der Verfollständigung mit IntelliSense erhält man eine erstklassige Unterstützung.

Weiterführende Links