Ich möchte eine Listbox mit Spalten füllen?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Setze die Spaltenzahl der Listbox auf deine Bedürfnisse (hier im Beispiel 4 Spalten):

ListBox1.ColumnCount = 4

Dann kannst du die Breite der Spalten wie folgt verändern (hier im Beispiel 1. Spalte=40px, 2. Spalte=30px, 3. Spalte=20px und letze Spalte braucht einfach noch den restlichen Platz auf):

ListBox1.ColumnWidths = "40;30;20"

Jetzt kannst du die Tabelle mit folgendem Befehl befüllen (hier im Beispiel wird in der zweiten Zeile in der ersten Spalte "Test" eingefüllt):

ListBox1.AddItem
ListBox1.List(1, 0) = "Test"

Mit einem For Loop, kannst du dann mehre ganze Zeile befüllen (hier im Beispiel 2 neue Zeilen mit den Werten Name, Vorname, Alter, Grösse):

For i = 1 To 3
  ListBox1.AddItem 
  ListBox1.List(i - 1, 0) = "Name"
  ListBox1.List(i - 1, 1) = "Vorname"
  ListBox1.List(i - 1, 2) = "Alter"
  ListBox1.List(i - 1, 3) = "Grösse"
Next i
End Sub 

Elifsahin 
Fragesteller
 18.09.2018, 11:05

wie würde das mit einem "Übernehmen" - Button aussehen?

1
Gaterde  18.09.2018, 11:07
@Elifsahin

Das kann ich dir sagen, wenn du mir sagst, wie deine Textboxen und DropDown Boxen + Übernehmen Button heissen ;)

0
Elifsahin 
Fragesteller
 18.09.2018, 11:35
@Gaterde

1.NR
2.Aufgaben
3.Mitarbeiter
4.Zeitplan
5.ListBox1
6.ÜbernehmenButton    
Danke :D 

0
Gaterde  18.09.2018, 12:30
@Elifsahin

Hier. Die Nummer zähle ich automatisch hoch. Das "Nr" Textfeld kannst du eigentlich somit weglassen (dann gibt es sicher keine Duplikate ;)):

Dim i As Integer
Private Sub ÜbernehmenButton_Click()
  i = i + 1
  ListBox1.ColumnCount = 4
  ListBox1.ColumnWidths = "30;100;150"
  ListBox1.AddItem
  ListBox1.List(i - 1, 0) = i
  ListBox1.List(i - 1, 1) = Aufgaben.Text
  ListBox1.List(i - 1, 2) = Mitarbeiter.Text
  ListBox1.List(i - 1, 3) = Zeitplan.Text
End Sub

Die "ColumnWidths" kannst du natürlich selber noch anpassen :)

Auch wird nicht geprüft, ob die Textfelder leer sind... Das kannst du nach belieben noch einbauen (if Abfrage).

0

Code Bsp für VB6:
Sofern deine ListBox immer die gleiche Anzahl an Spalten haben wird und die Spaltenreihenfolge nicht vertauscht wird, kannst du so "hardcoded" darauf zugreifen:
  ListBoxObj.ListItems(AktuelleZeile).SubItems(AktuelleSpalte) = "test"
Neue Zeile einfügen (am Ende)
ListBoxObj.ListItems(ListBoxObj.ListItems.count + 1).ListSubItems.Add 1, , "test"
Entferne eine Zeile:
ListBoxObj.ListItems.Remove (Gewünschtezeile)
    ' z.B ListBoxObj.SelectedItem.Index 


Elifsahin 
Fragesteller
 18.09.2018, 11:03

funktioniert leider nicht

0