2

我的情况如下,我有DockPanel Suite的win-forms应用程序和很多控件,它们覆盖了整个屏幕,

我想启用从 Windows 资源管理器到应用程序的文件的 D&D。我知道如何实现 D&D,但似乎如果我为主父窗体启用它,则只有应用程序标题栏和任务菜单图标反映了 D&D 中的更改。

我希望整个表单接受来自资源管理器的文件。我是否必须为我的应用程序中显示的每个顶级控件启用文件的 D&D?

我确信有更好的方法来实现这一点,帮助?

阐明

当用户将文件从 Windows 资源管理器拖到我的表单时,我希望表单中的每个位置都能为此类事件提供反馈。就像您可以将文件从资源管理器拖到 Visual Studio 中一样,无论您将它拖到哪里,应用程序都会接受该文件。

4

2 回答 2

0

我没有使用 DockPanel 套件,但使用 Visual Studio 表单设计器创建表单拖放启用和表单上的适当处理程序,我添加的几乎所有内容(没有更改属性)都允许表单“看到”拖放。包括,Panel、SplitContainer、TabControl、ListBox、Button、ListView。我试过的唯一没有用的东西(当我到达这个页面时我遇到的问题)是 RichText 控件,我猜那是因为它允许拖放编辑。

我的猜测是这是 DockPanel 套件的特定行为。我对此一无所知,但我猜它必须消耗拖放来实现其停靠功能。也许您可以在 DockPanel 面板级别而不是表单级别挂钩某些事件。

于 2009-11-10T16:21:22.307 回答
0

我在使用 DevExpress 的组件时遇到了类似的问题,但通过确保所有用户控件都已AllowDrop = false设置来设法解决它。基本上,在解决方案上运行搜索AllowDrop = true并确保只有您的主表单设置了它(您可以从所有受影响的设计师中删除所有此类行,因为false这是默认值。

这让我有一个地方可以处理所有拖放操作。

于 2012-09-24T13:07:29.407 回答