如何让拖放在Windows 7上工作

本文关键字:工作 Windows 拖放 | 更新日期: 2023-09-27 18:26:36

我编写了一个小型 C# 表单应用程序,我将用它来查看一些二进制文件数据。我希望能够将文件从Windows资源管理器拖放到应用程序中并相应地加载它们。我知道SO上有几个关于D&D的相关问题,我已经遵循了他们关于以普通用户/管理员身份运行我的应用程序的建议,但我永远无法为拖放射击制作事件。

这是我设置允许放置位并将事件处理程序添加到控件的地方(在 InitializeComponent(( 中(:

        this.dataGridView1.AllowDrop = true;
        this.dataGridView1.AllowUserToOrderColumns = true;
        this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
        this.dataGridView1.Location = new System.Drawing.Point(12, 33);
        this.dataGridView1.Name = "dataGridView1";
        this.dataGridView1.Size = new System.Drawing.Size(916, 119);
        this.dataGridView1.TabIndex = 0;
        this.dataGridView1.DragDrop += new System.Windows.Forms.DragEventHandler(this.dataGridView1_DragDrop);

我可以在this.dataGridView1_DragDrop中设置断点,但它永远不会触发。最重要的是,当我在应用程序上拖动文件时,鼠标图标总是一个带有分数的圆圈。我还尝试将拖放的事件处理程序添加到我的窗体中,并将其指向与数据网格视图相同的事件处理程序方法(并在窗体上设置 AllowDrop 位(。这将导致标识行为。我错过了什么?

如何让拖放在Windows 7上工作

您必须在

"DragEnter"事件上设置 e.Effect 属性,如 中指定的那样http://msdn.microsoft.com/en-us/library/aa984430(v=vs.71(.aspx