Listbox.Items.Add - Position feststellen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von VB-and-Me.

    Listbox.Items.Add - Position feststellen

    Guten Tag, und - leicht verspätet - allen ein angenehmes Jahr 2012!
    Ich habe zwei, für Könner sicher sehr einfache Fragen zum Einfügen eines Eintrags in eine Listbox.
    1. Wie kann ich feststellen, an welcher Stelle der Listbox der neue Eintrag eingefügt wurde, wenn Listbox.sorted = true ist.
    2. Die frühere Möglichkeit eine Integerzahl unter Itemdata zu speichern, habe ich nicht mehr gefunden. Gibt es eine solche Möglichkeit noch?
    Vielen Dank! :)
    Die Items-Eigenschaft ist vom Typ ObjectCollection. Das heißt, du kannst da reinspeichern, was immer du willst.
    Daher kann man sich sowas prima selbst implementieren:

    VB.NET-Quellcode

    1. Friend Class ListBoxItem
    2. Public Property Text As String
    3. Public Property Data As Integer
    4. Public Sub New(Optional ByVal parText As String = "", Optional ByVal parData As Integer = 0)
    5. Text = parText
    6. Data = parData
    7. End Sub
    8. Public Overrides Function ToString() As String
    9. Return Text
    10. End Sub
    11. End Class
    Die Anwendung sähe dann so aus:

    VB.NET-Quellcode

    1. ' Beispiel fürs Hinzufügen
    2. ListBox1.Items.Add(New ListBoxItem("Hallo", 10))
    3. ListBox1.Items.Add(New ListBoxItem("Tschüss", 20))
    4. ListBox1.Items.Add(New ListBoxItem("Trololo", 1337))
    5. ' Beispiel fürs Auslesen
    6. Dim Zahl As Integer = DirectCast(ListBox1.SelectedItem, ListBoxItem).Data
    7. MessageBox.Show("Ausgewählte Zahl: " & Zahl)
    8. ' Verändern geht natürlich auch
    9. Dim Item As ListBoxItem = DirectCast(ListBox1.SelectedItem, ListBoxItem)
    10. Item.Text = "verändert"
    11. Item.Data = 123
    Natürlich kannst du der ListBoxItem-Klasse so viele Eigenschaften und Methoden hinzufügen, wie du willst.

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