Frage zu Combobox und Listbox

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von Mukkes.

    Frage zu Combobox und Listbox

    Hallo Vbler,

    Wie könnte ich denn folgendes umsetzten:



    Ich würde gerne diesen aufbau in eine Combobox oder Listbox einfügen so das wenn ich z.b Spur TT auswähle das dann die einträge Lokomotiven 81056 usw. erscheinen.

    Ich dachte da an eine Combobox mit den einträgen Spur TT und Spur H0 und wenn ich Spur TT auswähle sollte dann in einer Listbox die einträge Lokomotiven usw. angezeigt werden.
    Das gleiche wenn ich in der Combobox Spur H0 auswähle.

    Nur weiß ich nicht wie ich das machen soll wenn ich an die stelle Teile & Zubehör komme wie ich das die weitere auswahl anzeigen kann.

    Wäre sowas möglich oder gibt es da was besseres wie ich dies umsetzten könnte ?
    Ich habe mal folgendes versucht, funzt zwar fast so wie ich es haben möchte aber ich denke das ist nicht wirklich ein guter weg.

    Mit 3 Tabellen in einem DS das muss ich mir mal anschauen.

    VB.NET-Quellcode

    1. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. ComboBox1.Items.Add("Spur TT")
    3. ComboBox1.Items.Add("Spur H0")
    4. End Sub
    5. Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ComboBox1.SelectedIndexChanged
    6. Select Case ComboBox1.SelectedIndex
    7. Case 0
    8. ComboBox2.Items.Clear()
    9. ComboBox2.Items.Add("Lokomotiven")
    10. ComboBox2.Items.Add("Güterwagen")
    11. ComboBox2.Items.Add("Personenwagen")
    12. ComboBox2.Items.Add("Startpackung")
    13. Case 1
    14. ComboBox2.Items.Clear()
    15. ComboBox2.Items.Add("Lokomotiven")
    16. ComboBox2.Items.Add("Güterwagen")
    17. ComboBox2.Items.Add("Personenwagen")
    18. ComboBox2.Items.Add("Startpackung")
    19. End Select
    20. End Sub
    21. Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged
    22. Select Case ComboBox2.SelectedIndex
    23. Case 0
    24. ComboBox3.Items.Clear()
    25. ComboBox3.Items.Add("81056")
    26. ComboBox3.Items.Add("81061")
    27. ComboBox3.Items.Add("81062")
    28. ComboBox3.Items.Add("81063")
    29. Case 1
    30. ComboBox3.Items.Clear()
    31. ComboBox3.Items.Add("97170")
    32. ComboBox3.Items.Add("122572")
    33. ComboBox3.Items.Add("122569")
    34. ComboBox3.Items.Add("22548")
    35. End Select
    36. End Sub
    Also das ist eine völlig falsche Herangehensweise die du hast!
    Bau dir ein Dataset auf und dort die Tabellen. Diese dann gescheit verknüpfen.
    Und dann kannst du dir alles per Drag & Drop zusammen ziehen.
    Für das was du willst musst du nur eins, zwei Zeilen programmieren (zum laden und speichern der Daten in ner XML zB.) der Rest ist alles im Designer machbar!

    Bau dir ein ordentliches Konzept auf und setz das im Dataset um.
    Alle Spalten des Datasets kannst du in VS einfach auf ne Form ziehen und durch die Verknüpfungen über das Dataset wird er immer die richtigen Daten darstellen.
    Ohne Programmiererei!

    Schau dir die Tuts vom @ErfinderDesRades dazu an.
    DatasetOnly: DB-Programmierung ohne Datenbank
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    @Mukkes: hihi - in Gewisser Weise hast du das Rad neu erfunden:
    Was du da mit deine 3 Comboboxen gebastelt hast, ist klar erkennbar ein ParentChildView der von vb1963 genannten Relationen:
    Schiene => Teil => UnterTeil

    Also das Problem ist schoma klar erfasst :thumbsup:

    Nur wie elegant, und mit welchen Möglichkeiten sich das dann in einem datengebundenen relationalen Datenmodell auflöst - da hinter zu kommen musste dir jetzt noch erarbeiten.
    Nein müsste es nicht unbedingt.. brauche am ende nur die nummern mit denen muss ich weiter arbeiten.

    Habe momentan das ganze als PDF-Datei und wenn ich eine Katrogorie brauche suche ich diese und kopiere die Kategorienummer in eine textbox.

    Wollte mir diesen schritt sparen und das ganze mit ins programm einbauen so das ich eine auswahlliste habe, ohne dieses rum kopieren von pdf in meine programm.

    Habe mir mal Treeview angeschaut, ist fast so wie ich es haben möchte.

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Mukkes“ ()

    tja, und wie gedenkst du nun, voranzukommen?

    Du hast den konkreten Fahrplan, dir ein typisiertes Dataset zu erstellen, und eine recht schwammige Möglichkeit, dasses iwie mit eim Treeview auch gehen könnte - wie auch immer.
    Also beim Dataset kriegst du alles nötige zum laden, speichern zufügen, löschen, ändern mit dabei.

    Beim Treeview - naja, da hast du noch nichtmal einen geeigneten Treeview, also das wirst du punkt für punkt zusammenstoppeln müssen.
    Mein versuch mit den Comboboxen von post#3 lasse ich ganz sein :D

    Das Treeview ist fast sowas wie ich es gerne hätte aber denke mal das es zu umständlich ist.

    Da tendiere ich schon zum Dataset, habe mir auch schon einige tuts dazu angeschaut. Weiß nun wie ich da vorgehen muss.

    Nur was ich mir noch nicht wirklich vorstellen kann wie ich das ganze nachher als auswahlliste in meine form bringen soll.

    Was ich gesehen habe ist das man Dataset sehr gut in ein DataGridView laden kann. Nur ein DataGridView möchte ich eigentlich nicht verwenden.
    tja, schade eigentlich.
    grad das mit den Comboboxen könnte man exakt so umsetzen wie in deim Ansatz angedeutet. Sogar überaus einfach, man bräuchte nicht mal eine Zeile Code dazu zu schreiben, um die Inhalte der jeweils untergeordneten Combos jeweils wechseln zu lassen.


    Und DGVs sind eiglich überaus praktisch, um erstmal eine Funktionalität im Groben hinzustellen.
    Hübsch machen kann man später immer noch, am Anfang ist erstmal wichtig, dass man Daten laden, anzeigen, zufügen, löschen, ändern und abspeichern kann. Die mittleren 4 der 6 genannten Punkte kann alle das DGV übernehmen, ohne jeden Aufwand.
    Wie gesagt, wenns erstmal läuft, kann man immer noch jeglichen zusätzlichen Aufwand treiben, ums aufzuhübschen.
    Der Erfinder redet über ein Dataset.
    Dataset = Daten!!!! Keine Darstellung.
    Das Dataset kannst du an jede beliebige Art von Control binden und das ohne Code.
    Hast du dir die Beispiele vom Erfinder denn mal angesehen die ich verlinkt habe?

    Merken:
    Daten immer von GUI trennen.

    Wenn dein Datenkonzept steht (im Dataset) ist es dem Ding völlig egal ob es in 100000 Comboboxen oder einem Datagrid dargestellt wird.
    Oder nen Datagrid mit Comboboxen oder oder oder.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Hallo Leute,

    So also ich habe mir die letzten tagen die videos von "vier Views" und tut´s dazu angeschaut aber bin doch nun mehr verwirrt als schlauer geworden.

    Ich habe nun mal eine Dataset angelegt bin mir aber nicht sicher ob das so richtig ist.



    Was ich auch noch nicht so richtig verstanden habe ist wie ich nun das ganze in eine oder mehrere Comboboxen bekomme.

    Genau so wo ich die Kategoriennummer eintrage wo ich eigentlich brauche, kommen die mit in die Tabellen oder muss ich die im Code festlegen.

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

    Immerhin meisterst du schonmal die Bedienung des Dataset-Designers :thumbup:

    Aber die relationale GrundIdee ist nicht verstanden, das erkennt man daran, dass du dieselbe Tabelle Spur sechsfach hergestellt hast, und immer anders benannt. Und Teil hast du fünffach erstellt und verschieden benannt.

    Aber es ist auch ein Problem, dass du Lokomotiven, Güterwagen, Personenwagen nicht einfach als Teil auffasst, sondern als iwas besonderes.

    In meim Datenmodell wären die einfahch Teile, wie andere Teile auch.
    Meinst du, du könntest eine Lokomotive auch als Teil auffassen? Dann hätte man nur noch die Tabellen Spur und Teil zu erstellen - alles annere könnte gelöscht werden.
    Und es gäbe nur eine Relation
    Spur => Teil, und das liesse sich sehr einfach mit 2 DGVs als ParentChildView präsentieren.
    Also Lokomotiven usw. würde ich jetzt nicht als Teil aufnehmen da ja Teile & Zubehör wieder eine unterkategorie ist.

    Habe es mal abgeändert würde das so reichen ?




    Mit 2 DGVs kann ich aktuell nicht arbeiten in meinem Programm aus platz mangel.

    Wollte es gerne per Combobox machen ungefähr so:

    andere auswahl

    Die einzelnen Kategoriennummer werden die dann per Code zugewiesen ?
    Nein, du bringst Struktur und Inhalt durcheinander.

    "Auswahl" ist schoma garnix - weg damit.

    Dann eine Tabelle "Spur", aber eine Spur hat nur ID und Namen, mehr braucht die nicht. Dann kannst du Datensätze anlegen, mit Namen "Spur HO", "Spur N" oder whatever.
    "Lokomotiven" ist keine Eigenschaft einer Spur.
    Eine Lokomotive ist ein Teil

    Die Teil-TAbelle kann auch ganz einfach sein - auch einfach nur Name, SpurID, und mw. diese Bestellnummer, oder was das ist.
    Dann kannst du Teile anlegen wie "Lokomotive", "Güterwagen", "Weiche", "Lampe", whatever.
    Juhuuuuuuu Habs hinbekommen :)

    Also wenn man mal es Prinzip verstanden hat ist es eigentlich ganz einfach ^^



    Habe schon es schon mit den Comboboxen hinbekommen nur ein problem habe ich noch und zwar wenn ich bei der zweiten combobox was anderes auswähle ändert sich in der dritten box der Wert nicht.

    Welche einstellung muss ich da ändern ?

    Edit: Habs gefunden hatte bei der dritten combobox die Datenquelle ändern müssen.

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Mukkes“ ()