列表框控件、DataObject 对象、MouseMove 事件和 StartDrag、SetText 方法示例

下例用 DataObject 来包含拖动文本,演示从一个列表框到另一个的拖放操作。该代码示例在 MouseMove 事件中使用 SetText 和 StartDrag 方法来完成拖放操作。

窗体包含:

  • 名为 ListBox1 和 ListBox2 的两个列表框控件。还需在第二个列表框中添加选择。
Sub UserForm_ListBox2_BeforeDragOver(Cancel, Data, X, Y, DragState, Effect, Shift)
    Cancel = True
    Effect = 1
End Sub

Sub UserForm_ListBox2_BeforeDropOrPaste(Cancel, Action, Data, X, Y, Effect, Shift)
    Cancel = True
    Effect = 1
    UserForm_ListBox2.AddItem Data.GetText
End Sub


Sub UserForm_ListBox1_MouseMove(Button, Shift, X, Y)

    If Button = 1 Then
      		UserForm_ListBox2.AddItem UserForm_ListBox1.Value
    End If
End Sub

Sub UserForm_Initialize()
    For i = 1 To 10
        UserForm_ListBox1.AddItem "Choice " & (UserForm_ListBox1.ListCount + 1)
    Next
End Sub
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24