ListBox-Steuerelement, DataObject-Objekt, MouseMove-Ereignis, StartDrag, SetText-Methoden (Beispiel)
Im folgenden Beispiel wird ein Drag-and-Drop-Vorgang von einem ListBox-Element in ein anderes veranschaulicht, indem ein DataObject verwendet wird, um den gezogenen Text zu enthalten. In diesem Codebeispiel werden die Methoden SetText und StartDrag im MouseMove-Ereignis verwendet, um den Drag-and-Drop-Vorgang zu implementieren.
Sie können dieses Beispiel verwenden, indem Sie diesen Beispielcode in den Deklarationsabschnitt eines Formulars kopieren. Stellen Sie sicher, dass im Formular zwei ListBox-Steuerelemente mit den Bezeichnungen "ListBox1" und "ListBox2" enthalten sind. Im zweiten ListBox-Element müssen Sie außerdem Auswahloptionen hinzufügen.
Private Sub ListBox2_BeforeDragOver(ByVal Cancel As _
MSForms.ReturnBoolean, ByVal Data As _
MSForms.DataObject, ByVal X As Single, _
ByVal Y As Single, ByVal DragState As Long, _
ByVal Effect As MSForms.ReturnEffect, _
ByVal Shift As Integer)
Cancel = True
Effect = 1
End Sub
Private Sub ListBox2_BeforeDropOrPaste(ByVal _
Cancel As MSForms.ReturnBoolean, _
ByVal Action As Long, ByVal Data As _
MSForms.DataObject, ByVal X As Single, _
ByVal Y As Single, ByVal Effect As _
MSForms.ReturnEffect, ByVal Shift As Integer)
Cancel = True
Effect = 1
ListBox2.AddItem Data.GetText
End Sub
Private Sub ListBox1_MouseMove(ByVal Button As _
Integer, ByVal Shift As Integer, ByVal X As _
Single, ByVal Y As Single)
Dim MyDataObject As DataObject
If Button = 1 Then
Set MyDataObject = New DataObject
Dim Effect As Integer
MyDataObject.SetText ListBox1.Value
Effect = MyDataObject.StartDrag
End If
End Sub
Private Sub UserForm_Initialize()
For i = 1 To 10
ListBox1.AddItem "Choice " _
& (ListBox1.ListCount + 1)
Next i
End Sub
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.