C#WinForms DragEnter永远不会触发

时间:2012-01-08 10:08:01

标签: c# winforms windows-7 drag-and-drop

我对此感到困惑。我尝试在DataGridView上实施拖放操作。没有看到任何事件被触发,我尝试了一个带有文本框的简单表单。

我希望能够从Windows资源管理器中拖动文件或文件夹。

我错过了一些东西,因为这些事件从未发生过。我确实读到了关于DragEvents, Windows 7 and UIPI但我仍然无法解决这个问题。

我没有想法,我欢迎您的建议。

public Form1()
{
    InitializeComponent();
    this.AllowDrop = true;
    textBox1.AllowDrop = true;
    textBox1.DragEnter += new DragEventHandler(textBox1_DragEnter);
    textBox1.DragDrop += new DragEventHandler(textBox1_DragDrop);
    textBox1.DragOver += new DragEventHandler(textBox1_DragOver);
}

void textBox1_DragOver(object sender, DragEventArgs e)
{
    e.Effect = DragDropEffects.Move;
}

void textBox1_DragDrop(object sender, DragEventArgs e)
{
    e.Effect = DragDropEffects.Move;
}

void textBox1_DragEnter(object sender, DragEventArgs e)
{
    e.Effect = DragDropEffects.Move;
}

似乎这个应该工作。我在WP7 64上有一个干净的安装 - 包含所有更新,我没有运行病毒或恶意软件保护,或任何可能阻止这些事件发生的事情(据我所知)。

2 个答案:

答案 0 :(得分:26)

我有同样的问题。这只是因为我从“以管理员身份运行”会话进行调试。我认为,自VISTA以来,有一种安全措施可以防止它下降到特权应用程序。

答案 1 :(得分:3)

我发现当我从Visual Studio以调试模式运行我的Forms应用程序时,它没有用。只有当我在VS之外运行它才能完美运行。据推测,这也与Windows 7(以及可能的更高版本)的安全性有关。