Wie kann ich dynamisch Listboxen erstellen?

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von a.b_om.

    Wie kann ich dynamisch Listboxen erstellen?

    Hallo zusammen

    Ich mache ein Programm. In meinem Programm kann der User eine Zahl eingeben.

    Je nach der Zahl, soll so viele Listboxen erscheinen und in die Form perfekt reinpassen.

    Ein Beispiel:
    Der User gibt 6 ein.

    Die Form sollte dann 6 Listboxen haben.
    3 oben und 3 unten
    auch weitere Infos: 2 links, 2 mittig und 2 rechts.


    Leider habe ich keine Ahnung wie man das machen soll.
    Habt ihr vllt. eine Idee?
    Einfach der Form abhängig vom input die gewünschte Zahl an ListBoxen hinzufügen (Controls#Add) dann musst du halt wissen wie groß du deine ListBoxen haben willst und wieviele maximal in eine reihe passen sollen, abhänging davon kannst du dann berechnen wieviel platz du brauchst und entsprechend die Form größe anpassen und die Controls and die richtige stelle verschieben. Was hast du denn bis jetzt?

    Edit: Grad erst gelesen das die Form größe bereits vorher feststeht, sorry. So einfach per division berechnen wieviel platz theoretisch pro ListBox zur verfügung stünde und ansonsten das von oben beibehalten

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

    a.b_om schrieb:

    Bis jetzt nicht auf dieser Form. Ich mache sonst alles andere in einer anderen Form. Es geht auch hauptsächlich darum diese Listboxen hinzuzfügen und positionieren.

    Habs oben nochmal bearbeitet, brauchst eigentlich nur die Form größe und kannst loslegen. Wenn deine Form 1000 hoch und 1000 breit ist und du 10 ListBoxen rein packen willst haste theoretisch 100 & 100 pro ListBox zur verfügung (kannste natürlich noch leicht anpassen wenn du einen rand möchtest) dann veränderst du die Größe der ersten ListBox und setzt sie auf (0, 0) nun weißt du das die nächste liste 100 weiter rechts hin musst solang die breite nicht die der Form überschreiten würde, sollte es überschreiten fängste mit ner neuen reihe an.
    Für sowas gibt's n TableLayoutPanel. Da die ListBoxen mit Dock = Fill hinzufügen, fertig.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @a.b_om Oder nen FlowLayoutPanel.
    Überleg, ob es sinnvoll ist, die ListBoxen auf ein UserControl zu packen, falls die iwelche Intelligenz brauchen.
    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!