Listbox Items

Dieses Thema Listbox Items im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von w1z4rd2003, 15. Mai 2006.

Thema: Listbox Items Hallo zusammen Kann mir jemand helfen?? Ich habe 3 Listboxen. In der ersten Listbox erstelle ich Items, d.h z.B...

  1. Hallo zusammen

    Kann mir jemand helfen??

    Ich habe 3 Listboxen.

    In der ersten Listbox erstelle ich Items, d.h z.B Gruppe A , Gruppe B usw.
    In der dritten Listbox hab ich alle Mannschaften aufgelistet die ich anhand von drag and drop in die zweite Listbox verschieben kann.

    Ich möchte jetzt gerne das es folgendermasse funktioniern würde.

    Wenn ich Gruppe A anklicke (1.Listbox) kann ich z.B 4 Mannschaften von der 3. in der zweite Listbox verschieben.

    Wenn ich danach Gruppe B (1.Listbox) anklicke werden die Items die in der 2. Listbox sind irgendwie gespeichert und die Listbox geleert. Sodass ich in Gruppe B wieder neue Mannschaften einfügen kann. Wenn ich danach auf Gruppe A klicke sind wieder die Items von Gruppe A in der 2.Listbox!

    Muss ich das mit Arrays lösen? Die Items immer abspeichern und danach je nach dem welches Items geklickt wird diese wieder in die 2. Listbox füllen??

    Ich dachte mir ich erstelle einfach x Listboxen und arbeite mit visible = true; und visible = false; aber irgendwie gefällt mir diese Lösung nicht so

    MFG
    w1z4rd2003
     
  2. Wir sprechen von welcher Programmiersprache ?? ??? ??
     
  3. ah ja sorry :) es geht um C#
     
  4. Da trügt Dich Dein Gefühl nicht ... ;).

    Erstelle doch eine ArrayList (oder in C#2 List). Sobald Du Listbox 1 gefüllt hast, setzt Du in diese äußere Liste (hier->groupList') n Einträge, ein Eintrag für jede Gruppe. Jeder dieser Einträge ist eine (Mannschafts-)Liste.

    [Sollten während der Programmausführung Gruppen dynamisch hinzugefügt werden können, musst Du natürlich auch zur Gruppenliste Einträge hinzufügen (darum besser gleich eine ArrayList o.ä. verwenden statt eines einfachen Arrays). Wenn sich die Reihenfolge der Einträge (Gruppen) in ListBox 1 nicht ändern kann, entspricht groupList[0] Gruppe A, groupList[1] Gruppe B usw. Ansonsten kannst Du z.B. gleich ein Hashtable/Dictionary nehmen.]

    In->groupList' legst Du weitere Listen ab, die die Mannschaften enthalten, die der jeweiligen Gruppe zugeordnet sind. Falls diese Liste immer den aktuellen Zustand der Listen wiederspiegeln soll, machst Du das nach dem Drag&Drop; ansonsten nur, wenn der Anwender eine andere Gruppe in Listbox 1 auswählt.

    // Wenn der Anwender eine andere Gruppe selektiert, ist->groupIdx' hier der alte selektierte Index
    private void SaveGroup(int groupIdx, ListBox manschLB) {
      // groupList[groupIdx] leeren, dann in groupList[groupIdx] in einer Schleife die Mannschaften
      // eintragen, die in ListBox 2 (manschLB) stehen.
    }

    Über eine weitere Methode kehrst Du das Ganze mehr oder weniger um: Du leerst Listbox 2 und trägst die Mannschaften, die in der entsprechenden Mannschaftsliste stehen (Gruppe A: groupList[0], Gruppe B: groupList[1], ...) dort ein.

    //->groupIdx' = neuer selektierter Index
    private void RestoreGroup(int groupIdx, ListBox manschLB) {
      // ListBox 2 (manschLB) leeren und in einer Schleife dort die Mannschaften eintragen, die in der Liste
      // groupList[groupIdx] stehen.
    }

    Oder so ähnlich.
     
  5. hi... danke viel mals für deine Hilfe aber irgendwie komme ich nicht ganz nach was du meinst :'(
     
  6. Ok, dann müsstest Du ein paar Fragen beantworten, damit ich Dir ein Beispiel schreiben kann:

    1.
    Ändert sich der Inhalt von Listbox 1 während der Programmausführung? D.h., kann der Anwender Gruppen hinzufügen/entfernen oder werden sonstwie Gruppen hinzugefügt oder entfernt?

    2.
    Handelt es sich um C#2 / .NET2 oder um eine ältere Version?
     
  7. Schritt 1.

    anhand einer combobox wähle ich eine Kategorie aus, in der nebenstehende Listbox werden dann alle Mannschaften aufgelistet. Listbox heisst lstVereine!

    Schritt2:
    in einer anderen Listbox lstGruppen erstelle ich anhand einer anderen Maske* die Gruppen. das funktioniert auch! Nehmen wir mal an ich erstellt 5 Gruppen (Grupp1 , 2, 3, 4 und 5).

    *[Mit Hilfe eines Button wird eine kleine Maske aufgerufen, in dieser Maske gebe ich der name der Gruppe ein und mit OK wird diese Gruppe in die Listbox eingefügt!]

    Somit sehe ich folgendes auf mein Bildschirm.
    lstGruppen = Gruppe1, Gruppe2, Gruppe3, Gruppe4, Gruppe5
    lstVereine = alle Aufgelisteten Mannschaften
    lstAusgewählteVereine = leer


    Schritt 3.

    In lstAusgewählteVereine können die Mannschaften jetzt eingefügt werden mit drag and drop. Aber hier ist eben gerade das problem. Das einfügen selbst bringt mir nichts. Wenn ich GruppeA anklicke und dan 4 mannschaften in lstAusgewähltevereine kopiere sollten diese irgendwie gespeichert werden, sodass wenn ich gruppe b anklicke lstausgewähltevereine leer ist.

    Ich benutze .NET Framework SDK v1.1

    MFG
     
  8. Ich habe hier mal ein Beispiel hochgeladen (Vorsicht, Hi-Tech-Seite! ;)), um das Forum nicht so zuzukleistern und einen Direkt- oder Fummel-Link zu vermeiden.
    http://www.netzzentrale.de/sonstiges/wtforum_snippets.html

    Im Beispiel wird ein Hashtable verwendet (da ja die Einträge in der Gruppenliste nicht statisch sind). Key: Gruppenname, Value: Mannschaftsliste. Statt Drag&Drop werden einfach Move-Buttons verwendet, damit es übersichtlicher ist. Ich habe es nicht groß ausprobiert; also bitte testen, ob sich kein Fehler eingeschlichen hat. Wenn Du noch Fragen hast, melde Dich einfach.

    Du hast natürlich ein Visualisierungsproblem: Man sieht der Gruppe nicht an, ob sie Mannschaften enthält. Man könnte zwar die Anzahl hinter den Gruppennamen setzen, aber dann kannst Du nicht mehr ListBox.FindString... direkt verwenden. Evtl. böte sich ein ListView an; dort könntest Du in einer weiteren Spalte die Anzahl der Vereine eintragen. Eine weitere Alternative wäre eine Baumansicht.

    Und nicht vergessen, immer eine Gruppe zu selektieren (und oldGroupListBoxIdx bzw. die von Dir entsprechend verwendete Variable zu setzen, wenn nötig), nachdem Du die Gruppen-Listbox gefüllst hast.

    Wenn Du den Anwender Gruppen umbenennen lässt, musst Du dies natürlich beim Hashtable berücksichtigen (z.B. einfach den entsprechenden Eintrag aus dem Hashtable nehmen und sofort mit dem neuen Key (= neuer Gruppenname) wieder einfügen).
     
  9. Danke Dings... du bist ein Held ;) Jetzt hab ichs verstanden anhand des Beispiels.... danke nochmals O0
     
Die Seite wird geladen...

Listbox Items - Ähnliche Themen

Forum Datum
VB 2008 Zahlen aus Textbox in Listbox einfügen Webentwicklung, Hosting & Programmierung 14. Jan. 2009
Listbox Bildschirmschoner auswahl ist inaktiv (grau hinterlegt) Windows XP Forum 28. Apr. 2008
Inaktive Listboxen Microsoft Office Suite 24. Jan. 2007
vb6 listbox Webentwicklung, Hosting & Programmierung 23. Apr. 2005
VB6 Scroll in der Listbox Webentwicklung, Hosting & Programmierung 7. Apr. 2005