从 Windows 资源管理器拖放到我的应用程序的文本框

Posted

技术标签:

【中文标题】从 Windows 资源管理器拖放到我的应用程序的文本框【英文标题】:Drag & Drop from Windows Explorer into my application’s TextBox 【发布时间】:2011-04-01 02:51:57 【问题描述】:

为什么拖拽事件从来没有进入?

private void textBox1_DragDrop(object sender, DragEventArgs e)

    Array a = (Array)e.Data.GetData(DataFormats.FileDrop);

    e.Effect = DragDropEffects.All;
    Debug.WriteLine("were in dragdrop");


private void textBox1_DragEnter(object sender, DragEventArgs e)

    if (e.Data.GetDataPresent(DataFormats.FileDrop, false) == true)
    
        e.Effect = DragDropEffects.All;
    

【问题讨论】:

您是否将文本框的“AllowDrop”属性设置为“true”?默认为假。 【参考方案1】:

将 e.Effect 分配更改为 DragDropEffects.Copy。仔细检查事件分配是否仍然存在,单击“属性”窗口中的闪电图标。示例代码在this thread 中提供。请注意,您可以直接转换为 string[]。

【讨论】:

如果我将 FORM/Window 的 AllowDrop 设置为 false,但 Form 中的内部 TextBox/DAtaGrid 的 AllowDrop 设置为 True,那会怎样?我不想让用户进入表单,只是进入表单内的数据网格。 是的......但是我必须使用什么演员来获取文件及其真实数据?字节[] ? 你只有文件的获取路径。读取文件需要编写代码。像 File.ReadAllBytes()。

以上是关于从 Windows 资源管理器拖放到我的应用程序的文本框的主要内容,如果未能解决你的问题,请参考以下文章

如何允许从 Windows 资源管理器拖放到 C# WPF 应用程序中?

启用从资源管理器拖放到 Run-As-Administrator 应用程序

如何将图片从资源管理器拖放到 WPF 控件上?

从 Java Swing 应用程序拖放到 Windows 资源管理器

将文件拖放到 wpf/C# 应用程序时,如何在 Windows 资源管理器中维护文件顺序?

绕过 UAC 以允许从非提升源拖放到我们提升的应用程序