C#WinForms DragEnter从不开火
我对此感到困惑。我尝试在C#WinForms DragEnter从不开火,c#,winforms,windows-7,drag-and-drop,C#,Winforms,Windows 7,Drag And Drop,我对此感到困惑。我尝试在DataGridView上实现拖放。没有看到任何事件被触发,我尝试了一个简单的表单,带有一个文本框 我希望能够从Windows资源管理器中拖动文件或文件夹 我错过了一些东西,因为这些事件永远不会发生。我确实读到了,但我还是无法回避这个问题 我没有主意了,我欢迎你的建议 public Form1() { InitializeComponent(); this.AllowDrop = true; textBox1.AllowDrop = true;
DataGridView
上实现拖放。没有看到任何事件被触发,我尝试了一个简单的表单,带有一个文本框
我希望能够从Windows资源管理器中拖动文件或文件夹
我错过了一些东西,因为这些事件永远不会发生。我确实读到了,但我还是无法回避这个问题
我没有主意了,我欢迎你的建议
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上有一个干净的安装-在所有更新中,我没有运行病毒或恶意软件保护,或者任何(据我所知)可以防止这些事件触发的东西。我也有同样的问题。这仅仅是因为我在“以管理员身份运行”会话中进行调试。我认为,由于VISTA有一种安全机制,可以防止掉入特权应用程序。我发现,当我在Visual Studio的调试模式下运行窗体应用程序时,它不起作用。只有当我在VS之外运行它时,它才能完美地工作。这可能与Windows 7(可能还有更高版本)上的安全性有关。您正试图从应用程序拖动到另一个应用程序?表单的DragEnter事件处理程序不会启动,您没有订阅该事件。没有明显的原因说明文本框“事件”不会触发。在其上设置断点,并将文件从Windows资源管理器拖动到框中。@YochaiTimmer我更新了帖子,我正在尝试从资源管理器拖动文件。@HansPassant我在设计器中连接了这个。我已将其从示例中删除。所有这些事件都没有引发——这是我的问题。好吧,你当前的代码片段没有重新说明问题,也没有对失败的明显解释。在另一台机器上试一试。顺便说一句,有一个名为“form1”的构造函数非常奇怪。样板一永远是形式一,资本效率。总是复制粘贴一个片段,不要手工输入。这是一种让你头疼的东西。你应该为这个解决方案获得奖牌。很抱歉在上面加上“谢谢!!!!”的评论。。。这个问题是一个默认的行为,windows没有通知任何关于这一点,该死的3个小时试图使拖放工作…我非常同意这种说法,这是一种打破你的头;我花了几个小时弄明白为什么事情没有发生。。。我正在以管理员身份运行会话进行调试。(我正在使用Windows 10)感谢您为我节省了三个小时的设计时间!