Combobox mit arraylist füllen

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von DJToastbrot.

    Combobox mit arraylist füllen

    Hallo und guten Tag an alle,

    ich bin neu hier und auch noch nicht all zu lange im "VB-Geschäft", und habe deshalb eine Frage, die ich mir auch nach ausgiebiger malträtierung der SuFu nicht beantworten kann.

    Ich möchte per Code mit Hilfe einer Arraylist eine Combobox füllen.
    Dies habe ich auch schon einige Male so gemacht.

    Leider habe ich den funktionierenden Code dafür vergessen. :(
    Geschafft habe ich es soweit:

    VB.NET-Quellcode

    1. Dim monatsauswahl As New ArrayList
    2. With monatsauswahl
    3. .Add("Januar")
    4. .Add("Februar")
    5. .Add("März")
    6. .Add("April")
    7. .Add("Mai")
    8. .Add("Juni")
    9. .Add("Juli")
    10. .Add("August")
    11. .Add("September")
    12. .Add("Oktober")
    13. .Add("November")
    14. .Add("Dezember")
    15. End With
    16. cb_datashow_choice.Items.Add(monatsauswahl)

    wobei "monatsauswahl" meine Arraylist sein soll und "cb_datashow_choice" meine Combobox ist.
    Wenn ich die Userform öffne, steht in der Combobox allerdings nur (Auflistung), anstatt die einzelnen Monate.
    Kann mir einer von euch sagen, was ich da nun vergessen habe? Ich hab grad irgendwie nen Blackout.. :(

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. Dim monatsauswahl As New ArrayList
    3. Dim z As Integer
    4. With monatsauswahl
    5. .Add("Januar")
    6. .Add("Februar")
    7. .Add("März")
    8. .Add("April")
    9. .Add("Mai")
    10. .Add("Juni")
    11. .Add("Juli")
    12. .Add("August")
    13. .Add("September")
    14. .Add("Oktober")
    15. .Add("November")
    16. .Add("Dezember")
    17. For z = 1 To .Count - 1
    18. 'Combo aus Array fühlen
    19. ComboBox.Items.Add(.Item(z))
    20. Next
    21. End With
    22. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Alex2000“ ()

    Hi,

    es geht noch einfacher:

    VB.NET-Quellcode

    1. ComboBox1.Items.AddRange(monatsauswahl.ToArray())
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „milaim“ ()

    Hmm.

    Leider funktioniert das auch nicht.

    @Alex:

    Wenn ich deine Lösung versuche, dann erzählt er mir, dass Anweisungen die mit "." oder "!" anfangen nur bei With anweisungen verwendet werden können.
    Dabei ist .Count unterstrichen, ebenso .item in der combobox anweisung.

    @milaim:

    Wenn ich deine Lösung versuche, dann steht in der Combobox nach dem Aufklappen

    "Object[]-Array"

    Habt ihr noch eine andere Idee?
    Das kann doch echt nicht sein Mensch, das war doch nicht so schwer! :(
    Also wenn ich das einem Button zuweise, dann funktioniert das hier bei mir.. Es werden alle Monate in der combobox angezeigt..

    VB.NET-Quellcode

    1. Dim monatsauswahl As New ArrayList
    2. With monatsauswahl
    3. .Add("Januar")
    4. .Add("Februar")
    5. .Add("März")
    6. .Add("April")
    7. .Add("Mai")
    8. .Add("Juni")
    9. .Add("Juli")
    10. .Add("August")
    11. .Add("September")
    12. .Add("Oktober")
    13. .Add("November")
    14. .Add("Dezember")
    15. End With
    16. ComboBox1.Items.AddRange(monatsauswahl.ToArray())
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
    Hmm nagut,

    ich wollte natürlich nicht eure Kompetenz anzweifeln.

    Trotzdem Vielen Dank für eure Unterstützung,

    wenn ich den Fehler finde, dann stelle ich ihn hier mal zur Ansicht rein.

    Noch was:

    Macht es nen Unterschied, ob ich unter Windows XP x32 oder unter Vista Ultimate x64 kompiliere?

    Schönen Gruß

    DJToastbrot

    EDIT:

    Also ich hab meinen Fehler zwar nicht gefunden, aber aus irgendwelchen Gründen funktioniert es jetzt, sowohl mit milaims Lösung, als auch mit der von dir, Alex.

    Weiß der Henker, was da falsch gelaufen ist, auf jeden Fall läufts jetzt, wie ich es haben möchte.
    Normalerweise weise ich meine ComboBoxen über Textdateiinhalt zu, doch da in diesem Fall die Auswahl für immer die selbe sein wird, wollte ich das im Programm implementieren. Ich weiß, dass man die Werte durchaus auch in den Objekteigenschaften eingeben kann, jedoch hatte ich den Anspruch an mich gestellt, dies auch über die Eingabe von Code bewerkstelligen zu können. 8-)

    Nun hats geklappt.

    @Alex:

    Ein Fehler ist mir in deinem Code allerdings noch aufgefallen:

    du hast geschrieben:

    VB.NET-Quellcode

    1. For z = 1 To .Count - 1


    Richtig ist meiner Meinung nach aber

    VB.NET-Quellcode

    1. For z = 0 To .Count - 1


    da z = 1 dazu führt, dass der Januar aus der Auswahl rausfliegt (nur 11 Monate werden angezeigt).
    Das könnte daran liegen, dass das erste Item einer Textbox den Wert "0" hat. Oder!?

    Gruß

    DJToastbrot

    PS: Ich möchte als Anfänger natürlich nicht klugscheißen, korrigier mich bitte, wenn ich falsch liegen sollte!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „DJToastbrot“ ()

    sorry habe fehler gemacht, jetz passt:

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. Dim monatsauswahl As New ArrayList
    3. Dim z As Integer
    4. With monatsauswahl
    5. .Add("Januar")
    6. .Add("Februar")
    7. .Add("März")
    8. .Add("April")
    9. .Add("Mai")
    10. .Add("Juni")
    11. .Add("Juli")
    12. .Add("August")
    13. .Add("September")
    14. .Add("Oktober")
    15. .Add("November")
    16. .Add("Dezember")
    17. For z = 0 To .Count - 1
    18. Combo.Items.Add(.Item(z))
    19. Next
    20. End With
    21. End Sub


    werden alle Monate angezeigt !

    Alex2000 schrieb:

    @ DJToastbrot: ich verstehe dich nicht, vorher hast du was anderes gefragt und jetzt kommt noch TextBox dazu. Wenn du eine Anständige hilfe erwartest dann poste deine Code oder erkläre etwas genauer was du haben möchtest ! :thumbup: ;)




    Alex, das versteh ich jetzt nicht ganz - wieso Textbox? Ich hab doch nur gesagt, dass ich die ComboBoxen (es sind mehrere auf einem Formular vorhanden!) für gewöhnlich über eine externe Textdatei befülle, nämlich so:

    VB.NET-Quellcode

    1. ComboBox1.Items.AddRange(System.Text.RegularExpressions.Regex.Split(My.Computer.FileSystem.ReadAllText("D:\test.txt"), vbCrLf))


    bei dieser Combobox wollte ich jedoch NICHT über eine Textdatei füllen, da der Inhalt der ComboBox immer der gleiche ist.
    Bei den CB's, die per Textdatei befüllt werden, ist der Inhalt variabel, da ich die Textdateiinhalte ebenfalls per Textbox und Buttonereignis verändere! Das war nur ein Einwurf, um mein Vorgehen besser zu beleuchten und hatte mit der Fragestellung an sich nichts zutun!
    Jetzt klar(er)? ;)

    Gruß

    DJToastbrot
    :D LoL Achso DAS meinst du!

    Nee, Sorry

    VB.NET-Quellcode

    1. Textbox = ComboBox

    (kleiner Spaß)

    Sorry für die Unruhestiftung, ist mit echt nicht aufgefallen! :whistling:

    Hatte grade mit Textboxen hantiert, wahrscheinlich waren die da noch im Kopf...

    8-)

    Gruß

    DJToastbrot