# Dialog (Benutzeroberfläche)

Ein Dialog, Dialogfeld, Dialogfenster oder Dialogbox ist ein Element der grafischen Benutzeroberfläche.

## Verwendung

Dialoge werden eingeblendet, um Eingaben vom Benutzer einzuholen, beispielsweise:
* Bei der Software-Installation wird der Anwender gefragt, ob die Installation nach den Standardvorgaben ablaufen soll oder ob der Anwender die zu installierenden Module und Zielverzeichnisse vorgeben möchte.
* Bei einem Druckauftrag kann der Anwender angeben, welcher Drucker verwendet werden soll, wie viele Kopien er erhalten möchte und ob nur bestimmte Seiten zu drucken sind.

## Eigenschaften von Dialogfenstern

In der Regel sind Dialogfenster formularartig aufgebaut. Dazu werden Steuerelemente wie Textfelder und Kontrollkästchen verwendet. Meistens am unteren Rand enthalten sie Schaltflächen wie OK oder Abbrechen, mit denen der Benutzer seine Eingaben bestätigen oder verwerfen und den Dialog schließen kann. Einfache Dialogfenster, sogenannte Meldungen, enthalten lediglich einen Frage- oder Hinweistext und eine oder mehrere Schaltflächen, etwa Ja und Nein zum Beantworten einer Frage.
Enthält ein Dialogfenster mehrere solcher Eingabeelemente wie Textfelder oder Schaltflächen, ist nur immer eines von ihnen zu einem bestimmten Zeitpunkt aktiv. Durch Anklicken mit der Maus kann man ein anderes Feld aktivieren. Für Benutzeroberflächen, die sich ohne Maus, d. h. nur mit der Tastatur bedienen lassen (wie etwa Windows) gilt: Wenn man auf der Tastatur die Tabulatortaste drückt, wird nach einer programmierten Reihenfolge das nächste Eingabeelement innerhalb des Fensters aktiviert. Zusammen mit der Umschalttaste (Shift) kann man diese Reihenfolge rückwärts durchlaufen. Drückt man dagegen den Zeilenschalter (Return) oder die Eingabetaste (Enter), wird die gerade aktive Schaltfläche als betätigt oder eine Texteingabe als abgeschlossen erkannt und das Dialogfenster geschlossen.

## Modale und nichtmodale Dialoge

Modale Dialoge sperren den Rest der Anwendung (oder sogar der Benutzeroberfläche), solange der Dialog angezeigt wird.
Nichtmodale Dialoge erlauben auch Eingaben in der Applikation außerhalb des Dialogs.

## Standard-Dialoge

Dialoge werden vom Programmierer heute meist mit grafischen Editoren (GUI-Designer) erzeugt, wie sie beispielsweise in Microsoft Visual Studio, Apple Xcode oder NetBeans integriert sind. In der Regel werden vom jeweiligen GUI-Toolkit Standard-Dialoge angeboten, die durch einen einfachen Funktionsaufruf verwendet werden können. Dies hat für den Benutzer den Vorteil, dass er auch in unterschiedlichen Anwendungen vertraute Dialogfenster vorfindet, beispielsweise:
* Meldungen mit Text und verschiedenen Kombinationen von Schaltflächen,
* Dateiauswahldialoge, mit denen der Benutzer eine oder mehrere Dateien oder ein Verzeichnis auswählen kann,
* Farbauswahldialog, mit dem der Benutzer eine Farbe aus einer Palette auswählen oder selbst definieren kann.

## Programmierung
### C#

Das folgende Beispiel in der Programmiersprache C# zeigt die Implementierung eines Hauptfensters mit drei Buttons. Das Klick-Ereignis der Buttons jeweils mit einer Ereignisbehandlungsroutine verknüpft, die einen Dialog öffnet (siehe Ereignis).