【问题标题】:Windows Forms: how to drag and drop a .xml file on a TextBox?Windows 窗体:如何在 TextBox 上拖放 .xml 文件?
【发布时间】:2012-02-08 22:46:31
【问题描述】:

我有一个 Windows 窗体文本框,我希望用户可以在其中从 Windows 资源管理器拖放文件。 我只想允许在 TextBox 上放置一个 .xml 文件(路径)。 在 DragEnter 事件上测试要被拖放的文件格式的方法是:

private void DragEnter(object sender, DragEventArgs e)
{
  if (e.Data.GetDataPresent(DataFormats.Text))
    e.Effect = DragDropEffects.Move;
  else
    e.Effect = DragDropEffects.None;
}

上述数据格式不包含 Xml。据我所知,如果我使用 DataFormats.FileDrops,我允许删除任何类型的文件。 有任何想法吗? 提前致谢!

【问题讨论】:

  • 如何知道文件格式是否为 XML?通过文件扩展名? (不可靠,在您的情况下甚至可能根本没有用)文件内容? (您需要解析内容才能做到这一点)
  • 这确实是我关心的一部分,Andrew Barber,因为我希望有一种方法可以保证所删除文件的格式是 XML。如果没有这种方法,也许唯一的选择就是解析文件路径。

标签: c#


【解决方案1】:

您应该检查DataFormats.FileDrop,然后获取文件名并验证文件扩展名,然后您可以根据需要设置DragDropEffects,具体取决于删除的文件数量及其扩展名(仅在您的情况下) 1 和 xml 文件扩展名)。

用一个工作示例检查这个答案:https://stackoverflow.com/a/736883/559144

【讨论】:

  • 太棒了!您提到的示例对使其发挥作用有很大帮助。谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-14
  • 2016-11-08
相关资源
最近更新 更多