【问题标题】:Drag & Drop from Windows Explorer into my application’s TextBox从 Windows 资源管理器拖放到我的应用程序的文本框
【发布时间】: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”?默认为假。

标签: c# windows drag-and-drop windows-explorer


【解决方案1】:

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

【讨论】:

  • 如果我将 FORM/Window 的 AllowDrop 设置为 false,但 Form 中的内部 TextBox/DAtaGrid 的 AllowDrop 设置为 True,那会怎样?我不想让用户进入表单,只是进入表单内的数据网格。
  • 是的......但是我必须使用什么演员来获取文件及其真实数据?字节[] ?
  • 你只有文件的获取路径。读取文件需要编写代码。像 File.ReadAllBytes()。
猜你喜欢
  • 2011-04-02
  • 2020-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-22
  • 1970-01-01
相关资源
最近更新 更多