Rubrik: Controls · ComboBox | VB-Versionen: VB5, VB6 | 17.01.03 |
Combo-/ListBox-Einträge schnell hinzufügen Dieses Beispiel zeigt, wie man einer Combo-/ListBox zukünftig mit nur einer Codezeile mehrere Einträge auf einmal hinzufügt. | ||
Autor: Dieter Otter | Bewertung: | Views: 22.756 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Nervt es Sie auch manchmal, immer wieder folgende Code-Anweisungen verwenden zu müssen, um eine Combo-/ bzw. ListBox mit Einträgen zu füllen?
' ComboBox füllen With Combo1 .AddItem "An" .AddItem "An das" .AddItem "An den" .AddItem "Frau" .AddItem "Firma" .AddItem "Herr" End With
Solange es sich nur um ein paar Einträge handelt, wäre das ja noch nicht so schlimm. Sollen aber viele Enträge hinzugefügt werden, kann das ewige AddItem schon richtig lästig werden
Deshalb folgende Überlegung: Wie wäre es, wenn man zum Füllen der Combo-/ListBox eine Prozedur aufruft, der man alle Einträge als Parameter übergibt. Keine schlechte Idee Aber wie? Es sollen ja beliebig viele Parameter sein! Ein Array? Nein! Denn das Array müsste ja vorher erst deklariert und mit den entsprechenden Elementen gefüllt werden. Also wieder keine "Arbeitserleichterung".
Aber wozu gibt es denn das Schlüsselwort ParamArray? Genau! ParamArray legt fest, dass es sich bei dem Parameter einer Prozedur um ein Variant-Datenfeld handelt! Also genau das, was wir brauchen
Das ganze sieht dann wie folgt aus:
' Combo/ListBox mit beliebigen ' Werten füllen Public Sub ListBox_FillArray(oControl As Control, _ ParamArray vItems() As Variant) If IsArray(vItems) Then Dim vItem As Variant For Each vItem In vItems oControl.AddItem vItem Next End If End Sub
Aufruf:
' Bsp.: ComboBox füllen ListBox_FillArray Combo1, "Herr", "Frau", "Firma
' Bsp.: ListBox füllen ListBox_FillArray List1, 1, 2, 3, 4, 5, 6, 7, 8
Sie sehen schon: Der Prozedur ist es egal, ob Sie ihr String-Parameter oder Integer-Parameter übergeben