Rubrik: TextBox, ListBox & ComboBox | 15.06.05 |
Drag & Drop zwischen zwei Listboxen (VB.NET) VB-Version: VB5, VB6 | ||
Views: 17.365 |
Einzelne Einträge mittels Drag & Drop von einer Listbox in die andere zu verschieben geht so:
Sie benötigen 2 Listboxen (lbxSource u. lbxDest), deren Eigenschaft AllowDrop = True gesetzt werden muss und folgenden Code:
Private Sub form_load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' Listbox mit Einträgen füllen lbxSource.Items.Add ("Eintrag 1") lbxSource.Items.Add ("Eintrag 2") lbxSource.Items.Add ("Eintrag 3") End Sub Private source As ListBox Private sourceIndex As Integer Private Sub lbxSource_MouseDown(ByVal sender As System.Object, _ ByVal e As System.Windows.Forms.MouseEventArgs) _ Handles lbxSource.MouseDown, lbxDest.MouseDown Dim aPoint As Point Dim lbx As ListBox Dim aIndex As Integer lbx = CType(sender, ListBox) aPoint = New Point(e.X, e.Y) aIndex = lbx.IndexFromPoint(aPoint) If aIndex <= 0 Then source = lbx sourceIndex = aIndex lbx.DoDragDrop(lbx.Items(aIndex), DragDropEffects.All) End If End Sub Private Sub lbx1_DragDrop(ByVal sender As System.Object, _ ByVal e As System.Windows.Forms.DragEventArgs) Handles lbxDest.DragDrop Dim lbx As ListBox lbx = CType(sender, ListBox) If Not source Is Nothing Then source.Items.RemoveAt (sourceIndex) End If lbx.Items.Add (e.Data.GetData(DataFormats.Text)) End Sub Private Sub lbx1_DragEnter(ByVal sender As System.Object, _ ByVal e As System.Windows.Forms.DragEventArgs) Handles lbxDest.DragEnter If (e.Data.GetDataPresent(DataFormats.Text)) Then e.Effect = DragDropEffects.All Else e.Effect = DragDropEffects.None End If End Sub