Vb.net 从shell中删除文件
我正在尝试将一个文件从windows资源管理器拖放到我的窗体,我几乎成功:)Vb.net 从shell中删除文件,vb.net,Vb.net,我正在尝试将一个文件从windows资源管理器拖放到我的窗体,我几乎成功:) 在shell中打开资源管理器窗口后,我可以将一个文件放到我的表单中,在接受之前,我有一个消息框/对话框 问题在于,我的带有问题的messagebox在资源管理器窗口的后面打开。 下面是一个代码: Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles My
在shell中打开资源管理器窗口后,我可以将一个文件放到我的表单中,在接受之前,我有一个消息框/对话框 问题在于,我的带有问题的messagebox在资源管理器窗口的后面打开。 下面是一个代码:
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) 有没有办法让messagebox在浏览器窗口前弹出?2) 使用后如何从我的程序关闭打开的资源管理器窗口 编辑:解决方案…
1) 是放置我。在MsgBox之前激活
2) 为此,我仍然找不到解决方案。试试这个: 将对话框添加到项目中。(可在可添加的事物列表中找到,如表单、类等)。 向其添加标签并更改构造函数中的文本。 在“绘制事件”对话框中添加以下内容:
Me.BringToFront()
然后使用此对话框而不是MsgBox,它应该提供您需要的内容
这有点像是一种变通办法,但应该会奏效
编辑:
对,找到了更好的解决方案
在调用MsgBox之前,请将其添加到此问题中编写的代码中:
Me.BringToFront()
Me.TopMost = True
你会没事的。我知道你已经接受了答案,但我同意Hans的观点,即这个实现是有缺陷的。如果用户必须单击上载按钮,则启动openfiledialog。打开一个简单的浏览器窗口,他们必须从中拖动,这是非常违反直觉的 您可以保留拖放功能,但允许用户打开自己的资源管理器窗口来使用该功能 更直观的实现是将dragdrop功能添加到面板中,并具有一个标签和一个按钮,以便用户可以选择其中一种方法 大概是这样的:
很少有文件类型表现不同,因此请注意,正常人根据自己的意愿/需要来决定是正常的!从这个角度来看,“不要使用任何对话框”不是一个接近我需要的答案!我尝试了这个,它的行为和内置的msgbox在z-顺序中的行为一样。谢谢WozzeC的帮助。在另一个论坛的帮助下,我已经通过使用我解决了这个问题(使用原始消息框)。在msgbox之前激活。但你给了我一个好主意。有了这样的对话框,我可以使我自己的消息框在任何地方都可以显示,并具有更多功能,如“不再显示此消息”、完全本地化的按钮等:)超级骗子。是的,很容易忘记使用手动创建的对话框的可能性。好吧,你应该接受我的“上传”场景是象征性的,有些用户不熟悉通过浏览器导航,也不想在这种工作中浪费时间。此外,为了接受备份文件而从数据库中删除所有数据至少应该有一个问题(在删除之前)。但是,你给用户选择的想法是好的!