列表框控件、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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24