Listbox1 + Listbox2 = Listbox3 wie?

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Listbox1 + Listbox2 = Listbox3 wie?

    Hallo wie imer Titel zusehen, wie kann man

    VB.NET-Quellcode

    1. Listbox1 + Listbox2 = Listbox3


    dieses habe ich versucht, leider ohne erfolg:

    VB.NET-Quellcode

    1. ListBox3.Items.AddRange(ListBox1.Items & ListBox2.Items)

    dieses auch:

    VB.NET-Quellcode

    1. ListBox3.Items.AddRange(ListBox1.Items + ListBox2.Items)


    In Listbox1 ist z.B. sowas:

    VB.NET-Quellcode

    1. Start
    2. Stop
    3. ...


    In Listbox2 ist z.B. sowas:

    VB.NET-Quellcode

    1. ON
    2. OF
    3. ...


    Dieses soll dann nebeneinander so ausehen in Listbox3:
    In Listbox2 ist z.B. sowas:

    VB.NET-Quellcode

    1. StartON
    2. StopOFF
    3. ...


    gibts es eine möglichkeit ohne viel code das zu realisieren? :rolleyes:
    @Reginawaled Du musst über die einzelnen Items iterieren.
    For-Schleife über die kleinere Anzahl von Items ais LB1 und LB2 und dann fast Dein Code oben.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo, habe ich versucht.. leider ohne Erfolg.

    VB.NET-Quellcode

    1. for i as integer = 0 to LB1.items.count
    2. next

    dann:

    VB.NET-Quellcode

    1. for i2 as integer = 0 to LB2.items.count
    2. next

    dann:

    VB.NET-Quellcode

    1. ListBox3.Items.AddRange(i + i2)


    sonst komme ich so nicht drauf und google sacht auch nüchts, kannst du das bitte posten ein Beispiel oder link?

    VB.NET-Quellcode

    1. For i As Integer = 0 To Math.Min(LB1.Items.Count, LB2.Items.Count) - 1
    2. LB3.Items.Add(LB1.Items(i).ToString() & LB2.Items(i).ToString())
    3. Next i

    #untested

    UND: Lesen - Verstehen - Lernen
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais

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

    VB.NET-Quellcode

    1. Math.Min
    hat aber nichts damit zutun was dort steht, also brauchst du mich nicht so anmachen, ich kann schon lesen, nur ihr schreibt ihr in einer "Art andere Srpache".
    Und dieser code hat mit 0 gebracht außer das ich mich jetzt umsosnt wieder eingelogt habe..

    Fehler:

    VB.NET-Quellcode

    1. Zusätzliche Informationen: InvalidArgument=Value mit dem Wert 2 ist für index ungültig.


    @blaze

    VB.NET-Quellcode

    1. solltest noch - 1 nach dem Schleifenkopf (nach Lb2.Items.Count)) hinzufügen.


    was für eine Schleifenkopf? diese?:

    VB.NET-Quellcode

    1. For i As Integer = 0 To Math.Min(LB1.Items.Count, LB2.Items.Count)


    ich kann auch auf diese funktion verzichten, ist nicht mehr so wichtig..
    Wenn du die Elemente zählst, hast du bspw. 2 Elemente. Deine For-Schleife läuft aber von 0 bis 2 (Indices sind 0-basiert!), d.h. 0, 1, 2 und das sind 3 Werte. Somit ist der Wert 2 für den Index ungültig.
    Jep, genau, mein ich:

    VB.NET-Quellcode

    1. For i As Integer = 0 To Math.Min(LB1.Items.Count, LB2.Items.Count) - 1

    Damit werden nur die Elemente 0, 1 (d.h. das 1. Element und das 2.) abgefragt.

    Math.Min gibt btw. den kleineren Wert von zwei Werten zurück: Math.Min(1, 0) = 0, Math.Min(-5, 1) = -5. Das wird eben hier dazu verwendet, lediglich jene Elemente abzufragen, die auch in beiden ListBoxen vorhanden sind (könnte ja z.B. eigentlich sein, dass ListBox1 On, Off, Unknown enthält, aber ListBox2 nur Bla, Blubb. Somit würden da dann OnBla und OffBlubb in ListBox3 stehen.)

    Gruß
    ~blaze~
    danke blaze mein Retter es geht jetzt.
    ich habe es so gemacht in der Zeit:

    VB.NET-Quellcode

    1. For i As Integer = 0 To Math.Min(ListBox1.Items.Count - 1, ListBox2.Items.Count - 1)


    aber deins ist natürlich besser, da brauch man nur 1x "-1", ich dachte am anfang das sollte "Erstens" bedeuten, meien schuld schuldigung und danke.

    Reginawaled schrieb:

    es geht jetzt
    Hatten wir bereits in Post #2, aber offensichtlich wird Dir nur mit C&P-Code geholfen. :/
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!