vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2019
 
zurück
Rubrik: TextBox, ListBox & ComboBox01.07.08
Ausgewählte Einträge von einer Listbox in eine andere Listbox verschieben (VB.NET)

VB-Version:  VB.NET
 Views:  14.476 

Um einen oder mehrere ausgewählte Einträge von einer Listbox in eine andere Listbox zu verschieben benötigen wir ein Projekt mit zwei Listboxen (ListBox1 und ListBox2) sowie zwei Buttons (btnRechts und btnLinks).

Zuerst füllen wir im Form_Load-Ereignis eine Listbox mit Einträgen. Im btnRechts_Click-Ereignis werden alle Einträge der ersten Listbox in einer For-Schleife durchlaufen. Die Items-Auflistung enthält die Indices der einzelnen Elemente. Der Index beginnt beim ersten Element immer mit 0. Daher geht die For-Schleife von 0 bis Items.Count - 1. SelectedItems.Count ermittelt, ob und welche Einträge ausgewählt sind. Anschließend werden diese der zweiten Listbox hinzugefügt. Umgekehrt geht das natürlich genauso von ListBox2 zu ListBox1 (siehe Code im btnLinks_Click-Ereignis).

Public Class Form1
  Private Sub Form1_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
 
    ' ListBox1 mit Einträgen füllen
    For i = 1 To 10
      ListBox1.Items.Add("Eintrag " & CStr(i))
    Next
  End Sub
 
  Private Sub btnRechts_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles btnRechts.Click
 
    ' ausgewählte Einträge in ListBox2 verschieben ...
    For i = 0 To ListBox1.SelectedItems.Count - 1
      ListBox2.Items.Add(ListBox1.SelectedItems(i))
    Next
  End Sub
 
  Private Sub btnLinks_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles btnLinks.Click
 
    ' ausgewählte Einträge in ListBox1 verschieben ...
    For i = 0 To ListBox2.SelectedItems.Count - 1
      ListBox1.Items.Add(ListBox2.SelectedItems(i))
    Next
  End Sub
End Class

Wenn Sie nun die in ListBox2 übernommenen Einträge aus der ersten Listbox löschen wollen, benötigen Sie die Methode RemoveAt() und den Index des ausgewählten Eintrags. Hierfür erweitern wir die Click-Ereignisse unserer Buttons:

Public Class Form1
  Private Sub Form1_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
 
    ' ListBox1 mit Einträgen füllen
    ...
    ...
  End Sub
 
  Private Sub btnRechts_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles btnRechts.Click
 
    ' ausgewählte Einträge in ListBox2 verschieben ...
    ...
    ...
 
    ' ... und aus Listbox1 entfernen
    For i = ListBox1.SelectedItems.Count - 1 To 0 Step -1
      ListBox1.Items.RemoveAt(ListBox1.SelectedIndices(i))
    Next
  End Sub
 
  Private Sub btnLinks_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles btnLinks.Click
 
    ' ausgewählte Einträge in ListBox1 verschieben ...
    ...
    ...
 
    ' ... und aus ListBox2 entfernen
    For i = ListBox2.SelectedItems.Count - 1 To 0 Step -1
      ListBox2.Items.RemoveAt(ListBox2.SelectedIndices(i))
    Next
  End Sub
End Class

Diese Seite wurde bereits 14.476 mal aufgerufen.

nach obenzurück
 
   

Druckansicht Druckansicht Copyright ©2000-2019 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel