我刚刚在我的应用程序中实现了拖放。它有两种方式:
- 从我的应用程序到 Windows 资源管理器:导出文件
- 从 Windows 资源管理器到我的应用程序:导入文件
一个副作用是我也可以将文件从我的应用程序拖到我的应用程序(同一个窗口),这不是有意的。
有没有一种优雅的方法来确保我开始的拖放操作不会被我的应用程序接受?例如,检查放置操作的来源!= 我的应用程序?
我刚刚在我的应用程序中实现了拖放。它有两种方式:
一个副作用是我也可以将文件从我的应用程序拖到我的应用程序(同一个窗口),这不是有意的。
有没有一种优雅的方法来确保我开始的拖放操作不会被我的应用程序接受?例如,检查放置操作的来源!= 我的应用程序?
我只是想出了一个方法来做到这一点。现在我在拖放数据对象上设置了两种类型的数据:
在我的 Drop-handler 中,我检查是否存在 Unicode-Text 对象以及它是否包含我的应用程序的名称。如果是这样,我会中止放置操作。
您需要注册一个事实,即您使用某种设施或服务从应用程序内部发起了拖动。如果您在应用程序中收到拖放,请询问设施/服务是否在您的应用程序中启动了拖动。如果是这样,丢弃。之后重置设施/服务(无论如何)。