可以通过处理一系列事件(尤其是 DragEnter、DragLeave和 DragDrop 事件)在基于 Windows 的应用程序中启用用户拖放操作。
你还可以通过简单的方法调用,在基于 Windows 的应用程序中实现用户剪切/复制/粘贴支持和用户数据传输到剪贴板。
.NET 10 兼容性
从 .NET 9 开始, BinaryFormatter 由于安全漏洞,已从运行时中删除。 此删除中断了自定义对象的剪贴板和拖放操作,导致 Windows 窗体应用程序在功能上出现了差距。
.NET 10 通过引入新的 API 来解决此问题,这些 API 可还原剪贴板和拖放功能,同时提高安全性、错误处理和跨进程兼容性。 这些 API 使用 JSON 序列化,并提供用于数据操作的类型安全方法。
.NET 10 的主要改进包括:
- 使用提供更好的错误处理的方法进行
TryGetData<T>()。 - 使用方法的自定义类型的
SetDataAsJson<T>()。 - 对常见数据类型的内置支持,无需二进制序列化。
有关更新应用程序的综合指南,请参阅 .NET 10 中的剪贴板和拖放更改。
本节中
演练:在 Windows 窗体中执行拖放操作
说明如何启动拖放操作。
在应用程序之间执行拖放操作的方法
演示如何跨应用程序完成拖放操作。
如何:将数据添加到剪贴板
介绍如何以编程方式在剪贴板上插入信息,包括 .NET 10 中提供的新类型安全 API。
如何:从剪贴板检索数据
介绍如何使用旧方法和新的类型安全 TryGetData<T>() 方法访问剪贴板上存储的数据。
.NET 10 中的剪贴板和拖放更改
有关将剪贴板和拖放代码迁移到 .NET 10 新 API 的综合指南,以及了解删去 BinaryFormatter 的原因和作用。
相关部分
Windows 窗体中的拖放功能
描述用于实现拖放行为的方法、事件和类。
QueryContinueDrag 阐述请求继续拖动操作的事件中的复杂情况。
DoDragDrop 描述启动拖动操作关键方法的复杂性。
Clipboard 另请参阅 如何:将数据发送到活动 MDI 子窗口。