【问题标题】:Why isn't DragDrop enabled textbox accepting files?为什么启用 DragDrop 的文本框不接受文件?
【发布时间】:2017-07-26 23:21:01
【问题描述】:

在 Form1 和 textBox1 上都启用了 AllowDrop。这些事件在执行 DragDrop 和 DragEnter 时启用并启动。我已经尝试重新排列代码,以便 textBox1_DragEnter 位于 textBox1_DragDrop 之前,但这不起作用。这段代码有什么问题?

private void textBox1_DragDrop(object sender, DragEventArgs e)
{
    FileInfo fi = new FileInfo((string)e.Data.GetData(DataFormats.FileDrop));
    byte[] ba = Encoding.Default.GetBytes(fi.OpenText().ToString().ToCharArray());
    textBox1.Text = ba.ToString();
}

private void textBox1_DragEnter(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
        string file = (string)e.Data.GetData(DataFormats.FileDrop);
        if (Path.GetExtension(file) != "dat")
        {
            s = "broken file";
        }
    }
}

【问题讨论】:

  • 您必须向我们展示您的“未显示”代码。
  • 我添加了它。对不起。
  • 如果您打开了 UAC 并且您以管理员身份运行该程序,您将无法从 Windows 资源管理器中将某些内容拖放到您的表单中。

标签: c# winforms textbox


【解决方案1】:

你必须在 DragEnter 事件中设置 Effect 属性:

void textBox1_DragEnter(object sender, DragEventArgs e) {
  e.Effect = DragDropEffects.Copy;
  // your code...
}

【讨论】:

  • 谢谢。这允许它接受数据,但它不显示。不过,这是一个单独的问题。我会努力调试它。
猜你喜欢
  • 1970-01-01
  • 2013-11-20
  • 2021-09-05
  • 2021-07-09
  • 1970-01-01
  • 2021-05-26
  • 1970-01-01
  • 2016-07-20
  • 1970-01-01
相关资源
最近更新 更多