从 .NET 10 开始,某些 Windows 窗体 API 已标记为已过时。
以前的行为
以前,可以在没有任何生成警告的情况下使用 受影响的 API 。
新行为
在 .NET 10 及更高版本中,使用这些 API 会生成具有自定义诊断 ID 的编译时警告。 使用自定义诊断 ID 可以单独禁止显示警告,而不是全面取消所有过时警告。
下表列出了自定义诊断 ID 及其相应的警告消息。
| 诊断标识符 | DESCRIPTION | 严重程度 |
|---|---|---|
| WFDEV004 | Form.OnClosing(CancelEventArgs)以及 Form.OnClosed(EventArgs) 相应的事件已过时。 请改用Form.OnFormClosing(FormClosingEventArgs)、Form.OnFormClosed(FormClosedEventArgs)、Form.FormClosing和Form.FormClosed。 | 警告 |
| WFDEV005 | Clipboard.GetData(String) 方法已过时。 请改用 Clipboard.TryGetData 方法。 | 警告 |
| WFDEV006 | ContextMenu、DataGrid、MainMenu、Menu、StatusBar、ToolBar 已过时。 它们旨在实现与 .NET Framework 的二进制兼容性。 | 警告 |
已引入的版本
.NET 10
破坏性变更的类型
这些过时警告可能会影响 源兼容性。
建议的措施
- 使用警告上提供的 URL 链接,按照针对每个诊断 ID 提供的特定指南进行操作。
- 如有必要,可以使用自定义
WFDEVxxx诊断 ID 值取消警告。
受影响的 API
WFDEV004
WFDEV005
WFDEV006
- System.Windows.Forms.ContextMenu
- System.Windows.Forms.DataGrid
- System.Windows.Forms.MainMenu
- System.Windows.Forms.Menu
- System.Windows.Forms.StatusBar
- System.Windows.Forms.ToolBar