我正在尝试将文件从 Windows 资源管理器拖放到我的表单中,我几乎成功了 :)
在 shell 中打开资源管理器窗口后,我可以将文件拖放到我的表单中,在我接受之前我有一个消息框/对话框。
问题实际上是我的带有问题的消息框在资源管理器窗口的后面打开。这是一个代码:
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.AllowDrop = True
End Sub
Private Sub Form1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
Dim Files() As String
Files = e.Data.GetData(DataFormats.FileDrop)
If Files.Length > 0 Then
Dim ret As Integer = MsgBox("Would you like to upload file?" & vbNewLine & Files(0), MsgBoxStyle.OkCancel + MsgBoxStyle.Question, "Decide please")
If ret = DialogResult.OK Then
myModule.UploadF()
End If
End If
End If
End Sub
Private Sub Form1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragEnter
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.All
Else
e.Effect = DragDropEffects.None
End If
End Sub
Private Sub btn_open_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_open.Click
Shell("explorer c:\", AppWinStyle.NormalFocus)
End Sub
End Class
1)这里有什么方法可以让消息框在资源管理器窗口前弹出?
2) 使用后如何从我的程序中关闭打开的资源管理器窗口?
编辑:...
1) 的解决方案是将Me.Activate 放在MsgBox 之前!
2)为此,我仍然没有找到解决方案。