簡體   English   中英

拖放到Windows窗體問題

[英]Drag'n'drop to a Windows form issue

我有什么應該是關於拖拽的一個簡單問題。 我有一個新的Win Form項目,其中表單已設置為允許使用AllowDrop = true進行刪除。 還應該提一下我運行Windows 7 64位。

只是為了確定,我訂閱了

this.DragDrop += new System.Windows.Forms.DragEventHandler(Form1_DragDrop);

同樣。

但是當我運行應用程序並從我的桌面或資源管理器中拖動任何內容時,它會用鼠標指針圖標指示我不允許刪除任何文件。

我找到了類似這樣的問題(但是Win Vista),問題是Visual Studio運行的是管理器priveleges,而Windows資源管理器則沒有。 但是構建應用程序並運行可執行文件會導致同樣的問題。

我過去曾多次這樣做過,而谷歌也無法解決這個問題。 我錯過了什么?

默認情況下,未指定拖放操作的目標拖放效果(DragDropEffects.None)。 因此,在這種情況下,您的控件沒有丟棄事件。 要允許Control作為特定數據的拖放操作接收器,您應該指定具體的DardDropEffect,如下所示(使用DragEnterDragOver事件):

void Form1_DragDrop(object sender, DragEventArgs e) {
    object data = e.Data.GetData(DataFormats.FileDrop);
}
void Form1_DragEnter(object sender, DragEventArgs e) {
    if(e.Data.GetDataPresent(DataFormats.FileDrop)) {
        e.Effect = DragDropEffects.Copy;
    }
}

相關MSDN文章: 在Windows窗體中執行拖放操作

您使用的是錯誤的事件,請使用DragEnter事件。

this.DragEnter += new System.Windows.Forms.DragEventHandler(Form1_DragDrop);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM