2012-12-11 189 views
2

我想從Windows資源管理器中刪除文件到我的表單,我幾乎成功:)
在shell中打開資源管理器窗口後,我可以將文件放到我的窗體中,我有一個消息框/對話框,然後再接受。從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)因爲我仍然沒有找到解決方案。

+0

很少有文件類型的行爲不同,所以請注意,這是正常的正常的人根據自己的意願/需求決定!從這個角度來看「不使用任何對話框」並不是一個接近我需要的答案! –

回答

1

試試這個:

增加一個對話框項目。 (在表單,類等可添加的東西列表中找到)。 爲其添加標籤並更改構造函數中的文本。 在對話框漆事件補充一點:

Me.BringToFront() 

然後用這個對話框,而不是MSGBOX,它應該提供你所需要的。

這是一種解決方法,但它應該工作。

編輯:

對,找到了更好的解決方案。

一下添加到調用MSGBOX前寫在這個問題的代碼:

Me.BringToFront() 
Me.TopMost = True 

而且你將被罰款。

+0

我試試這個,它的行爲與z-order中的內建msgbox相同。 –

+0

謝謝WozzeC試圖幫助。在另一個論壇的幫助下,我已經通過在msgbox之前使用Me.Activate來解決這個問題(使用原始消息框)。但你給我一個好主意。有了這樣的對話框,我可以將我自己的消息框放置在任意位置,並具有更多功能,如「不再顯示此內容」,完全本地化的按鈕等,等等。:) –

+0

超級騙子。是的,很容易忘記使用手動創建的對話框的可能性。 – WozzeC

2

我知道你已經接受了一個答案,但我同意漢斯這個實現是有缺陷的。如果用戶必須點擊一個上傳按鈕,然後啓動一個openfiledialog。打開一個簡單的資源管理器窗口,他們必須從中拖出來,這非常直觀。

您可以保留拖放功能,但讓用戶打開自己的資源管理器窗口來使用它。

更直觀的實現方式是將拖放功能添加到面板,並有一個標籤和一個按鈕,以便用戶可以選擇任一種方法。

事情是這樣的:

enter image description here

+0

那麼,你應該接受我的「上傳」場景是象徵性的,並且有些用戶不熟悉通過資源管理器進行導航以及那些不希望因這類工作而失去時間的用戶。此外,刪除數據庫中的所有數據以接受備份文件應該至少有一個問題(在刪除之前)。但是,您給用戶選擇的想法是好的! –