# Combobox

Eine Combobox, Combo-Box (von englisch combo box) oder Kombinationsfeld ist ein Steuerelement in einer grafischen Benutzeroberfläche (GUI), über das der Benutzer eine Auswahl aus vorgegebenen Möglichkeiten treffen oder alternativ eigene Eingaben tätigen kann. Der Name Combobox leitet sich davon ab, dass sie als Kombination aus einem Textfeld und einem Listenfeld (Auswahlliste, Listbox, Drop-Down-Menü) betrachtet werden kann. Bei einer Combobox sind daher optional Tastatureingaben in das Textfeld der Combobox möglich oder aber die Auswahl/Änderung eines der vorgegebenen Listeneinträge. Comboboxen sind nicht zu verwechseln mit einer Selectbox oder einer Dropdown-Liste – diese erlauben keine freien Benutzereingaben, die Komponente des Textfeldes fehlt hier also.

## Funktionsweise und Gestaltung

Welche Einträge – als Vorschläge zur Auswahl durch den Anwender – zu welchem Zeitpunkt in der Liste der Combobox angezeigt werden, hängt dabei von dem jeweiligen Anwendungsfall ab. Von den Details der Implementierung der Combobox in ein Computerprogramm hängt es auch ab, ob das sichtbare Textfeld zunächst leer ist oder ob ein voreingestellter Wert angezeigt wird. Auch die Liste selbst kann zunächst leer sein, und sich erst später mit den im Textfeld eingegebenen Zahlen oder Texten autovervollständigen.
Bei der mit dem Textfeld kombinierten Listbox handelt es sich meistens um eine platzsparende, einzeilige sogenannte Drop-down Listbox, die sich erst beim Drücken des zugehörigen Buttons zeigt. Genau genommen spricht man dann von einer Drop-Down Combobox.
Diverse Implementierungen erlauben Programmierern die Möglichkeit, kleine Symbole neben den jeweiligen Listeneinträgen anzuzeigen. Allgemein muss es sich bei den Listeneinträgen nicht um textbasierte Inhalte handeln. In diversen Office-Paketen können auch Farben, Schraffierungen, Linienarten oder Linienstärken über eine Combobox ausgewählt werden. Das Konzept dahinter nennt man „Owner-Draw“.
Darüber hinaus ist es auch nicht zwingend so, dass das Drop-Down-Fenster eine Listbox sein muss. In Adobe Photoshop und Adobe InDesign werden beispielsweise an einigen Stellen Schieberegler angezeigt, wenn der Benutzer die Combobox ausklappt.

## Anwendungsbeispiele
### Datenbankanwendungen

    Für die Verwaltung einer Adressdatenbank bietet sich beispielsweise eine Combobox für die Anrede an. Die vorgegebenen Werte lauten 'Herr, Frau, Firma', zusätzlich hat der Bearbeiter aber auch die Möglichkeit, eigens definierte Anreden einzugeben (etwa Herr Dr.).

### Adressleiste im Webbrowser

    Ein typisches Beispiel für eine Combobox ist die Adressleiste eines Webbrowsers. Die Internetadresse kann in das Textfeld eingegeben werden, bereits besuchte Seiten finden in der DropDown-Liste Platz und können vom Benutzer mit wenig Aufwand wieder aufgerufen werden.

### Webanwendungen

    Der Benutzer tippt etwas in ein Textfeld ein, worauf sich eine Auswahlliste mit vorgeschlagenen Begriffen öffnet, aus denen der Benutzer wählen kann.

### Beziehungen zwischen Datenobjekten

    Wenn etwa in einer Erfassungsmaske für Aufträge u. a. einzugeben ist, welcher Sachbearbeiter für die Bearbeitung zuständig ist, wird häufig eine Combobox verwendet. Die 'aufgeklappte' Box zeigt zur Eingabeauswahl die Namen möglicher Sachbearbeiter (aus einem entsprechenden Datenbestand) an. Nach der Auswahl (und wenn die Auftragsdaten nur angezeigt werden) ist nur der Name des gewählten Sachbearbeiters sichtbar; dessen Kennung ist im Datensatz des jeweiligen Auftrags gespeichert.

## Beispiele
### HTML

Im Gegensatz zu HTML 4 bietet HTML5 die Möglichkeit, eine Auswahlliste zu definieren:

### Java

In der Programmiersprache Java unter Swing ist JComboBox die Combobox GUI-Komponente.
Ist die JComboBox als nicht editierbar programmiert (setEditable(false)), verhält sie sich wie eine Drop-down Listbox, wie auch die AWT-Komponente Choice. Sun bietet in Swing die mehrzeilige Listbox JList an – jedoch nicht als eigenständige Drop-down Listbox, sondern es wird eine „kastrierte“ JComboBox benutzt.

### MS Access

In der grafischen Entwicklungsumgebung von MS Access wird die Combobox im Erfassungsformular (im Beispiel für 'Aufträge') als Elementtyp 'Kombinationsfeld' angelegt und so wie in der nebenstehenden Grafik gezeigt angewendet. Der Entwickler spezifiziert in diesem Fall (bei Datenanzeige aus einem Datenbestand) für das Kombinationsfeld u. a. folgende Eigenschaften: Breite der Box; Anzahl Zeilen der Box; Datenquelle für die anzuzeigenden Personen; Name der ID im Datenbestand PERSON; Name des Fremdschlüssels im Datenbestand AUFTRAG u. v. a.

### C#

Das folgende Beispiel in der Programmiersprache C# zeigt die Implementierung eines Hauptfensters mit einer Combobox und einem Textfeld und die Verknüpfung des Auswahlereignis mit einer Ereignisbehandlungsroutine (siehe Ereignis).