鼠标左键按下时,产生的值是1,在加上CTRL的值8,从而值为9。见KeyState枚举
列表DragEventArgs.KeyState
Property(msdn.microsoft/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwindowsformsdrageventargsclasskeystatetopic.asp)。
到目前为止,这两个例子处理的都是同一窗体不同控件间的拖放,然而在同一应用程序的不同窗体上同样适用。
拖动文件
在windows中拖放通常是复制或移动
文件,windows完全支持该功能,而且对许多用户来说这也是操作文件的优选方式。除此之外,用户已经习惯了把文件拖动到一个程序来打开文件的方式,像拖动一个doc文件到
word来打开。
在这个例子中用从windows资源管理器拖来的文件来操作ListBox控件。
向窗体中添加一个ListBox控件,并设置其AllowDrop属性为True,并添加如下代码:
Private Sub ListBox1_DragEnter(ByVal sender As Object, ByVal e As _
System.Windows.Forms.DragEventArgs) Handles ListBox1.DragEnter
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.All
End If
End Sub
Private Sub ListBox1_DragDrop(ByVal sender As Object, ByVal e As _
System.Windows.Forms.DragEventArgs) Handles ListBox1.DragDrop
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
Dim MyFiles() As String
Dim i As Integer
' Assign the files to an array.
MyFiles = e