我试图创建一个Windows窗体,可以在其中放置文件/文件夹。

我在WinForms应用中有以下代码

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_DragEnter(object sender, DragEventArgs e)
    {
        Debug.Print("DragEnter");
    }

    private void Form1_DragDrop(object sender, DragEventArgs e)
    {
        MessageBox.Show("Dropped!");
    }
}

我已将AllowDrop属性设置为true。
我试过在Visual Studio中以调试方式运行应用程序。
基于对其他类似问题的回答,我尝试以管理员身份运行编译的exe。
我试过不以管理员身份运行编译的exe。

但是无论我做什么,我都无法触发DragDrop事件。但是,会触发DragEnter事件。我想念什么?

最佳答案

您的DragDropEffect是否设置正确?尝试将其放置在DragEnter事件处理程序方法中:

    private void Form1_DragEnter(object sender, DragEventArgs e)
    {
        Console.WriteLine("DragEnter!");
        e.Effect = DragDropEffects.Copy;
    }

默认情况下,它设置为DragDropEffects.None,因此不会触发Drop事件。

09-12 09:55