4.3.7 Welche Besonderheiten gibt es bei Comboboxen?
Das Kombinationsfeld ist der Listbox ähnlich. Sie stellt auch eine Liste zur Auswahl zur Verfügung. In dem Textfeld oberhalb der Liste kann der Anwender eine neue Eingabe tätigen. Außerdem ist beim Kombinationsfeld keine Mehrfachauswahl möglich.

Auch besteht nicht die Möglichkeit einen Eintrag mit select auszuwählen. Die Auswahl für den ersten Eintrag erfolgt mit setText(string). Das Ergebnis wird mit getText ausgelesen. Man kann den ausgewählten Wert auch mit getSelection auslesen. Dann werden aber freie Eingaben ingnoriert und der Rückgabewert ist leer.

Aufpassen muss man auch mit der Eigenschaft readonly ( myCtrl.model.readonly=true/false). Wird Readonly auf True gesetzt und es steht ein Text in der Auswahl der ComboBox kann der Anwender keine weitere Auswahl treffen. Bei leere Auswahl kann er eine aus der Liste auswählen, aber keine eigene eingeben.

Eigenschaften und Methoden:

MaxTextLen

Im Gegensatz zu einem Textfeld steht in der IDE nicht die Möglichkeit zur Verfügung die maximale Textlänge für das Eingabefeld der Kombobox festzulegen. Dies muß im Programm erfolgen:

Entweder mit
myCtrl.setMaxTextLen(x)
oder mit
myCtrl.MaxTextLen=x



additem( Item, Pos)
Fügt einen Eintrag an der Position hinzu.
myctrl.additem("Test",1)
oder
strEintrag = "Test"
myctrl.additem(strEintrag,1)

Additems(ItemArray,Pos)
Fügt die Einträge des Array ItemArray ab der Stelle Pos in die Liste ein.

Dim strEintraege(2)
strEintraege(0)="Test0"
strEintraege(1)="Test1"
strEintraege(2)="Test2"
myctrl.additems(strEintraege(),1)

removeitems(Pos,Count)

Entfernt die Anzahl (Count) von Einträgen ab der Position (Pos).

myCtrl.removeitems(0,4)

Achtung! Mit removeitems wird nicht der Eintrag im Textfeld der Combobox gelöscht. Dieser muß extra gelöscht werden.
myCtrl.text=""


itemcount

Liest die Anzahl der Einträge aus.
anzahl =  myctrl.itemcount

setText

Mit settext kann ein String in das Eingabefeld eingetragen werden. Dieser erscheint dann nicht in der Liste.
myCtrl.setText("Testeintrag")

getText

Mit GetText wird die Auswahl des Anwenders aus dem Textfeld ausgewählt.

ergebnis = myctrl.getText

Da eine Kombobox auch ohne Auswahl geschlossen werden, kann sollte man daran denken, auf einen leeren Eintrag zu prüfen. Vorher sollte man entscheiden was in einem solchen Fall zu passieren hat. Eventuell ist eine Meldung möglich, dass eine Auswahl getroffen werden muß.



Model.StringItemList

Gibt eine Liste mit allen Einträgen zurück.

  Dim Ergebnis()
  Ergebnis() = myCtrl.model.StringItemList()
  for i=0 to ubound(Ergebnis())
    msgbox Ergebnis(i)
  next i   
    for i=0 to ubound(myCtrl.model.StringItemList())
    msgbox myctrl.model.StringItemList(i)
  next i