Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Some Windows Forms APIs have been marked as obsolete, starting in .NET 7. Other APIs aren't obsolete but will cause a compile-time warning if you reference them.
Previous behavior
In previous .NET versions, these APIs can be used without any build warning.
New behavior
In .NET 7 and later versions, use of these APIs produces a compile-time warning or error with a custom diagnostic ID. The use of custom diagnostic IDs allows you to suppress the warnings individually instead of blanket-suppressing all obsoletion warnings.
The following table lists the custom diagnostic IDs and their corresponding warning messages.
Diagnostic ID | Description | Severity | Version introduced |
---|---|---|---|
WFDEV001 | Casting to/from IntPtr is unsafe. Use WParamInternal , LParamInternal , or ResultInternal instead. |
Warning | Preview 1 |
WFDEV002 | System.Windows.Forms.DomainUpDown.DomainUpDownAccessibleObject is no longer used to provide accessible support for DomainUpDown controls. Use AccessibleObject instead. | Warning | RC 1 |
WFDEV003 | System.Windows.Forms.DomainUpDown.DomainItemAccessibleObject is no longer used to provide accessible support for DomainUpDown items. Use AccessibleObject instead. | Warning | RC 1 |
Version introduced
.NET 7
Type of breaking change
These obsoletions and warnings can affect source compatibility.
Recommended action
- Follow the specific guidance provided for the each diagnostic ID using the URL link provided on the warning.
- If necessary, you can suppress the warning using the custom
WFDEVxxx
diagnostic ID value.
Affected APIs
WFDEV001
- System.Windows.Forms.Message.WParam
- System.Windows.Forms.Message.LParam
- System.Windows.Forms.Message.Result