c# - 拖放在 C# Winforms 应用程序中不起作用

标签 c# winforms drag-and-drop

我正在尝试创建一个 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 事件。

关于c# - 拖放在 C# Winforms 应用程序中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26628492/

相关文章:

C# Web 应用程序问题

c# - 将整数舍入到数组中最接近的高数

c# - 以编程方式取消选中datagridview中的复选框列

javascript - 禁止将文件系统图像拖到浏览器中。

firefox - selenium DragAndDrop 不拖放,尽管选择器看起来没问题

c# - 在 iOS Xamarin 应用程序中使用 ADAL 获取 AD 组

c# - 禁用功能区的访问键功能(助记符)

c# - 从数据表中提取特定列

c# - 如何同步数据库和DataGridView

c# - 使用 IStorage/IStream 从 C# 拖放到 Windows 资源管理器