Visual Basic ListBox Spalteneinteilung

  • VB6

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von RoulettePilot.

    Visual Basic ListBox Spalteneinteilung

    Hallo Leute,
    habe Visual Basic das erste Semester und hab ein kleines Problem bei
    meiner Studienarbeit an dem ich schon eine gute Woche sitz und ned
    weiter komm.
    Im Prinzip will ich 3 bestehende Arrays in einer ListBox ausgeben, wobei
    jedes Array eine Spalte der Listbox füllen soll.
    Die ListBox konnte ich bereits füllen jedoch werden alle 3 Arrays
    untereinander in einer Spalte ausgegeben.
    Meine Frage wie kann man die einzelnen Spalten einer Listbox ansprechen um
    sie zu füllen ?

    Ich bedanke mich schon einmal und hoffe mir kann jemand weiter helfen. :)
    Danke für die Schnelle Antwort

    Auf meinem Angabenblatt steht eindeutig ListBox sonst hätte ich es auch schon mit einer Listview probiert. HAHA
    Aber wenn du dir sicher bist muss ich es doch mal mit Listview versuchen ;)
    ja, Programmier-Aufgaben lassen erschreckend häufig erkennen, dass der Aufgabensteller nicht viel Ahnung hat.

    Du hast übrigens noch ein anneres, generelles Problem: Kein Control, auch nicht ListView, kann wirklich mehrere Arrays gleichzeitig anzeigen.

    Inne Datenverarbeitung denkt man anners: Man zeigt Datensätze an.
    Etwa deine 3 Arrays muss man in ein einziges Array umarbeiten, mit Datensätzen, von denen jeder 3 Properties hat.
    Ein solches Array kannst du in einem Listview anzeigen.

    Obwohl ich immer von Listview abrate - ein DatagridView ist zur Tabellen-Anzeige in jeder Hinsicht überlegen.
    ... oder du hast lange Weile, und zeichnest die Einträge selber
    Stichwort: OwnerDraw bzw. DrawMode
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    2. ListBox1.DrawMode = DrawMode.OwnerDrawFixed
    3. FülleTestDinger()
    4. End Sub
    5. Private Sub FülleTestdinger()
    6. Dim Ar1(2) As String
    7. Ar1(0) = "a"
    8. Ar1(1) = "b"
    9. Ar1(2) = "c"
    10. ListBox1.Items.Add(Ar1)
    11. Dim Ar2(2) As String
    12. Ar2(0) = "1"
    13. Ar2(1) = "2"
    14. Ar2(2) = "3"
    15. ListBox1.Items.Add(Ar2)
    16. Dim Ar3(2) As String
    17. Ar3(0) = "X"
    18. Ar3(1) = "Y"
    19. Ar3(2) = "Z"
    20. ListBox1.Items.Add(Ar3)
    21. End Sub
    22. Private Sub ListBox1_DrawItem(sender As Object, e As System.Windows.Forms.DrawItemEventArgs) Handles ListBox1.DrawItem
    23. ' hier selber zeichnen
    24. e.DrawBackground()
    25. e.Graphics.DrawString(CType(ListBox1.Items(e.Index), Array)(0), ListBox1.Font, Brushes.Black, e.Bounds)
    26. e.Graphics.DrawString(CType(ListBox1.Items(e.Index), Array)(1), ListBox1.Font, Brushes.Black, e.Bounds.X + 30, e.Bounds.Y)
    27. e.Graphics.DrawString(CType(ListBox1.Items(e.Index), Array)(2), ListBox1.Font, Brushes.Black, e.Bounds.X + 60, e.Bounds.Y)
    28. End Sub

    naja... ich bin ja nur die schnelle Eingreifgruppe... also fürs Grobe zuständig. *g*

    Für die Feinheiten und korrekte Dinge gibt's ja dich :)

    Aber....
    ich zitiere: "Meine Frage wie kann man die einzelnen Spalten einer Listbox ansprechen um sie zu füllen ?"

    Und die habe ich versucht auf die schnelle zu beantworten.
    Einen anderen Weg wüsste ich(!) nicht.

    Warum.. wieso.. weshalb.. is nich mein Bier, und die Frage hieß ja nicht: "Wie kann ich dies am besten bewerkstelligen"

    Edit:
    Wegen copy&Paste..
    ich glaube das geht so schneller, als wenn ich es stundenlang erkläre.. wobei ich nichtmal wüsste wie ich es ausdrücken sollte.