Mehrere Steuerelemente an Modul übergeben

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von VB1963.

    Mehrere Steuerelemente an Modul übergeben

    Hallo alle miteinandern,

    zurzeit porgrammiere ich ein Programm, dass es mir erlaubt Kochrezepte zu erstellen, bearbeiten, löschen, filtern, verwalten, erstellen von zufalls Wochenplänen und zu guter letzt zum erstellen von dementsprechenden Einkaufslisten.

    Das Programm verfügt über eine Art (Vorspeise/Hauptgericht/Vorspeise etc.) über eine Kategorie(Suppe - kalt/Suppe - warm/Fleischgericht/Fischgericht etc.) und über Zutaten (Mehl/Zucker/Wasser/Salz etc.). All diese Informationen werden über MySQL in einer Datenbank gespeichert.

    Wenn ich eine UserForm öffne, Kategorien oder Zutaten hinzufüge oder lösche, dann wird jedesmal die dementsprechenden ComboBoxen, die benötigten werden mit den neuen Werten aus der Datenbank gefüttert. Da der Quellcode immer identisch ist, sich jediglich aber nur die Steuerelemente ändern, bin ich auf die Idee gekommen ein Modul zu erstellen, das dynamisch auf die Übergabeparameter die jeweiligen Comboboxen füttert.

    Hier einmal ein Codebeispiel der alten Methode:

    dim i as byte = 0
    dim sqlCommand as string = "SELECT name FROM typ"
    dim read as string = "name"
    loadData(sqlCommand, read)
    frm_main_menu.cbType.Items.Clear()
    Do While resultOne(i) <> ""
    frm_main_menu.cbType.Items.Add(resultOne(i))
    resultOne(i) = ""
    i = i + 1
    Loop

    Hier der Code meines Versuches ein Modul zu erstellen:

    'Form load
    call refreshCategory(me, cbType)
    'ende Prozedur

    Sub refreshCategory(frm As Form, box As ComboBox)
    dim i as byte = 0
    dim sqlCommand as string = "SELECT name FROM typ"
    dim read as string = "name"
    loadData(sqlCommand, read)
    frm.box.Items.Clear()
    Do While resultOne(i) <> ""
    frm.box.Items.Add(resultOne(i))
    resultOne(i) = ""
    i = i + 1
    Loop
    End Sub

    Das Problem das dabei aber erscheint, ist das "box" kein Member von System.windows.forms.form ist. Testweise habe ich es mit nur einer Übergabe versucht, da hat es dann wunderbar funktioniert. Ich benötige aber für diese Prozedur die Form und die Combobox.

    Ich habe bereits im Internet nach der Übergabe von mehreren Steuerelementen rechachiert, bin aber erfolglos gewesen. Ich gehe schwer davon aus, dass das Problem eigentlich recht simpel ist, aber ich komm einfach nicht auf die Lösung.

    Ich hoffe einer von euch kann mir da einen Tipp/Rat geben.

    Liebe Grüße
    Sascha
    Willkommen im Forum. :thumbup:

    darkrykid schrieb:

    bin ich auf die Idee gekommen ein Modul zu erstellen
    Wenn Du eine Klasse meinst: Bitte verwende die richtige Terminologie.
    Wenn Du tatsächlich ein Modul meinst: Lass das und erstell eine Klasse.
    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!
    @darkrykid:
    wie @Artentus: schon schrieb - Dataset und Co.
    Schau dir den Anhang nur zur Veranschaulichung einmal an und wie viel Benutzercode dazu verbraucht wurde...
    (In den Listboxen Einträge machen und die Comboboxen anschauen...)
    Dateien
    • Kueche00.zip

      (18,49 kB, 50 mal heruntergeladen, zuletzt: )