【发布时间】:2012-02-05 07:07:55
【问题描述】:
我对此感到困惑。我尝试在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 上进行了全新安装 - 在所有更新中,我没有运行病毒或恶意软件保护,或任何(据我所知)可能阻止这些事件触发的东西。
【问题讨论】:
-
您正试图从您的应用程序拖动到另一个应用程序?
-
表单的 DragEnter 事件处理程序不会触发,您没有订阅该事件。文本框的事件不会触发没有明显的原因。在其上设置断点并将文件从 Windows 资源管理器拖到框中。
-
@YochaiTimmer 我更新了帖子,我正在尝试从资源管理器中拖动文件。
-
@HansPassant 我在设计器中连接了这个。我已将其从示例中删除。这些事件都不会触发 - 这是我的问题。
-
好吧,你当前的 sn-p 只是没有重现问题,也没有明显的失败解释。在另一台机器上试试。顺便说一句,有一个名为“form1”的构造函数很奇怪。样板文件始终是 Form1,大写 eff。 总是复制粘贴一个sn-p,不要手动输入。
标签: c# winforms windows-7 drag-and-drop