Listbox

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Daaaaniel.

    Hallo,

    in meinem Porgramm gibt es 2 Listboxen, in denen jeweils gleich viele items sind. Jetzt möchte ich gerne einen code einfügen, sodass immer die gleichen items ausgewählt sind. Also wenn ich in listbox1 z.b. item 3 auswähle soll in listbox 2 auch automatisch item 3 ausgewählt werden.
    kennt jemand einen code für sowas??
    das funktioniert aber nicht ganz. markiert wird es zwar richtig, aber wenn ich den eintrag dann so löschen will:

    VB.NET-Quellcode

    1. ListBox2.SelectedIndex = ListBox1.SelectedIndex
    2. ListBox1.SelectedIndex = ListBox2.SelectedIndex
    3. ListBox1.Items.Remove(ListBox1.SelectedItem)
    4. ListBox2.Items.Remove(ListBox2.SelectedItem)


    wird nur das item aus einer listbox gelöscht, das aus der anderen nicht. Ich denke, das liegt daran, dass nur der ausgewählte index geändert wurde, die löschfunktion aber ein ausgewähltes item sucht.
    kann man da irgendwas ändern, sodass die ausgewählten items aus beiden listboxen gelöscht werden?
    probiers mit:

    ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)
    ListBox2.Items.RemoveAt(ListBox2.SelectedIndex)

    Gruß Einsteiger

    Edit:

    Ich denke, das liegt daran, dass nur der ausgewählte index geändert wurde, die löschfunktion aber ein ausgewähltes item sucht.


    definitiv nein
    ich habe 2 listboxen in denen jeweils gleich viele items sind. wenn ich in einer der listboxen ein item auswähle, soll in der anderen listbox jeweils das gleiche item ausgewählt werden.
    dann gibt es noch einen button. wenn man ihn drückt sollen aus beiden listboxen die ausgewählten items(nur 1 pro listbox) gelöscht werden.
    der erste punkt funktioniert schon, nur das mit dem löschen geht noch nicht. es ist zwar in jeder listbox ein item blau markiert, allerdings wird immer nur das item aus einer listbox gelöscht. aus der anderen listbox wird das item nicht gelöscht, obwohl es blau markiert ist.
    ich hoffe ihr habt jetzt alle verstanden was mein problem ist.

    VB.NET-Quellcode

    1. Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
    2. ListBox1.Items.Remove(ListBox1.SelectedItem)
    3. ListBox2.Items.Remove(ListBox2.SelectedItem)
    4. End Sub
    5. Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
    6. Try
    7. If ListBox1.Items.Count > 1 Then
    8. ListBox2.SelectedIndex = ListBox1.SelectedIndex
    9. End If
    10. Catch ex As Exception
    11. End Try
    12. End Sub
    13. Private Sub ListBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox2.SelectedIndexChanged
    14. Try
    15. If ListBox1.Items.Count > 1 Then
    16. ListBox1.SelectedIndex = ListBox2.SelectedIndex
    17. End If
    18. Catch ex As Exception
    19. End Try
    20. End Sub
    es ist ganz logisch, sobald du in der einen ListBox das Item löschst ändert sich der SlectedINdex lgischerweise auch in der anderen ListBox machs so:

    Dim a As Integer = ListBox1.SelectedIndex
    ListBox1.Items.RemoveAt(a)
    ListBox2.Items.RemoveAt(a)

    gruß Einsteiger