4.3.9 Welches sind die Besonderheiten von Listboxen?
Es folgen die Methoden und Properties die während der Laufzeit des Programms zur Verfügung stehen. Diese sind bei Listboxen viel wichtiger als bei den anderen Kontrollfeldern, weil bei Listboxen ja Informationen ausgewertet werden müssen, die der Anwender in der Listbox ausgewählt hat.

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)

selectitem(Item,SelectMode)

Setzt den Eintrag "Item", das heißt den Eintrag der dem String "Item" entspricht, auf selektiert oder nicht selektiert. Wenn der Befehl mehrmals erfolgt, werden auch mehrere markiert. Wenn der der Modus Mehrfachselektion aus ist, werden alle anderen Markierungen bei einem Klick in die Listbox gelöscht.

Wenn der Eintrag "Item" nicht vorhanden ist erfolgt kein Fehler.

myCtrl.SelectItem("Test2",True)

itemcount

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


selecteditem

Übergibt den selektierten Text in einem String.
mySelect = myCtrl.SelectedItem

selecteditems

Übergibt, bei aktiver Mehrfachselektion, die ausgewählten Werte als ein Array von Strings. Ausgelesen werden können die Strings mit der Ubound-Funktion.

Dim Ergebnis()
Ergebnis = myCtrl.selecteditems
  for i=0 to ubound(Ergebnis())
    msgbox Ergebnis(i)
  next i   

Man kann auch direkt auf dieses Array zugreifen.
  for i=0 to ubound(myCtrl.SelectedItems())
    msgbox myctrl.selecteditems(i)
  next i   

Achtung: Nicht mit der Methode unter Model verwechseln. Model.selecteditems gibt ein Array der Positionen wieder.

selectitempos(pos, selected))

Markiert einen Eintrag nach der Position.
myctrl.selectitempos(2,true)

selectitemspos(array,selected)

Markiert mehrere Einträge nach der Position. (Nur wenn Multiselection aktiviert ist)

  dim selectarray(1)
  selectarray(0)=3
  selectarray(1)=5
  myctrl.selectitemspos(selectarray(),true)

selecteditempos

Übergibt die Position der Selektion.

Position =  myctrl.selecteditempos

selecteditemspos

Übergibt bei Mehrfachselektion die ausgewählten Position als Array.Hier wird wieder die uBound-Funktion zum Auslesen verwendet.

for i=0 to ubound(myCtrl.SelectedItemspos())
    msgbox myctrl.selecteditemspos(i)
  next i   

Das gleiche Ergebnis liefert Model.SelectedItems.

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   
 
Auch auf dieses Array kann man direkt zugreifen.

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