从 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 应用程序
从 Java Swing 应用程序拖放到 Windows 资源管理器