You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Update compiler errors
* add code for darkmode
* Clean up wording related to .NET RC
* Minor
* Fix or
* Rewrite info
* Apply suggestions from code review
Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
---------
Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
Copy file name to clipboardExpand all lines: dotnet-desktop-guide/winforms/compiler-messages/wfo5001.md
+9-2Lines changed: 9 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: Compiler Error WFO5001
3
3
description: Learn more about compiler error WFO5001. 'ColorMode' is for evaluation purposes only and subject to change.
4
-
ms.date: 03/04/2025
4
+
ms.date: 09/09/2025
5
5
ms.service: dotnet-desktop
6
6
ms.update-cycle: 365-days
7
7
f1_keywords:
@@ -16,12 +16,15 @@ helpviewer_keywords:
16
16
17
17
> `System.Windows.Forms.Application.SetColorMode(System.Windows.Forms.SystemColorMode)` is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed.
18
18
19
-
-or-
19
+
—or—
20
20
21
21
> `System.Windows.Forms.SystemColorMode` is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed.
22
22
23
23
The color mode feature is currently experimental and subject to change. This error is generated so that you understand the implications of writing code that sets the color mode of the Windows Forms project. The error must be suppressed to continue. For more information about this API, see [Dark mode](../whats-new/net90.md#dark-mode).
24
24
25
+
> [!NOTE]
26
+
> This compiler error no longer applies starting with .NET 10.
27
+
25
28
## Example
26
29
27
30
The following sample generates WFO5001:
@@ -43,6 +46,10 @@ static class Program
43
46
44
47
## To correct this error
45
48
49
+
Upgrade to .NET 10 or later, where this feature is no longer considered experimental.
50
+
51
+
\- or -
52
+
46
53
Suppress the error and enable access to the API by either of the following methods:
47
54
48
55
- Set the severity of the rule in the _.editorConfig_ file.
Copy file name to clipboardExpand all lines: dotnet-desktop-guide/winforms/compiler-messages/wfo5002.md
+8-1Lines changed: 8 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: Compiler Error WFO5002
3
3
description: Learn more about compiler error WFO5002. Async is for evaluation purposes only and subject to change.
4
-
ms.date: 03/04/2025
4
+
ms.date: 09/10/2025
5
5
ms.service: dotnet-desktop
6
6
ms.update-cycle: 365-days
7
7
f1_keywords:
@@ -24,6 +24,9 @@ This compiler error is generated when using any of the following methods:
24
24
25
25
The Windows Forms asynchronous API is currently experimental and subject to change. This error is generated so that you understand the implications of writing code that uses these APIs. The error must be suppressed to continue. For more information about this API, see [Async forms](../whats-new/net90.md#async-forms).
26
26
27
+
> [!NOTE]
28
+
> This compiler error no longer applies starting with .NET 10.
Copy file name to clipboardExpand all lines: dotnet-desktop-guide/winforms/whats-new/net100.md
+32-14Lines changed: 32 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,23 +1,27 @@
1
1
---
2
-
title: What's new in WinForms for .NET 10 Preview
3
-
description: Learn about what's new in Windows Forms for .NET 10 Preview. New versions of Windows Forms are released yearly with .NET.
2
+
title: What's new in WinForms for .NET 10 Release Candidate
3
+
description: Learn about what's new in Windows Forms for .NET 10 Release Candidate. New versions of Windows Forms are released yearly with .NET.
4
4
ms.topic: whats-new
5
-
ms.date: 08/12/2025
5
+
ms.date: 09/09/2025
6
6
ms.service: dotnet-desktop
7
7
ms.update-cycle: 365-days
8
+
dev_langs:
9
+
- "csharp"
10
+
- "vb"
8
11
#customer intent: As a developer, I want to know what's changed so that I can remain up-to-date.
9
12
---
10
13
11
-
# What's new in Windows Forms for .NET 10 Preview
14
+
# What's new in Windows Forms for .NET 10 Release Candidate
12
15
13
-
This article provides a high-level overview about what's new with Windows Forms (WinForms) in .NET 10 Preview. For detailed information, see the [release announcements](#release-announcements).
16
+
This article provides a high-level overview about what's new with Windows Forms (WinForms) in .NET 10 Release Candidate. For detailed information, see the [release announcements](#release-announcements).
14
17
15
-
.NET 10 Preview 7 was released in August 2025.
18
+
.NET 10 RC 1 was released in September 2025.
16
19
17
20
## Release announcements
18
21
19
22
Each release announcement provides detailed information about Windows Forms changes for .NET 10:
@@ -32,6 +36,18 @@ Windows Forms is shipping new code for the clipboard API. The clipboard is redes
32
36
33
37
.NET 9 obsoleted `BinaryFormatter`, which is used in some clipboard operations. These clipboard operations required you to opt in to compatibility package, or work around the operation. To ease the pain of moving away from `BinaryFormatter`, .NET 10 is obsoleting certain clipboard methods to indicate that they shouldn't be used. More methods are being added to help JSON serialization with clipboard data, circumventing the need for `BinaryFormatter`.
34
38
39
+
## Async forms
40
+
41
+
Windows Forms has fully integrated asynchronous forms support. Additionally, the async task now has a weak reference to the form, enabling responsive UIs when managing multiple windows.
42
+
43
+
Windows Forms for .NET 9 introduced new methods to support displaying forms and dialogs asynchronously, but in an opt-in preview mode where you had to suppress [Compiler Error WFO5002](../compiler-messages/wfo5002.md) to use the feature. This compiler error is no longer triggered with .NET 10.
44
+
45
+
The following APIs are no longer considered experimental:
Several <xref:System.Drawing.Design.UITypeEditor> types have been ported from .NET Framework, including `ToolStripCollectionEditor` and several editors related to the <xref:System.Windows.Forms.DataGridView> control. These editors are now discoverable by the <xref:System.Windows.Forms.PropertyGrid> and the Windows Forms Designer Actions panel.
@@ -40,18 +56,20 @@ SnapLines were fixed for custom designers.
40
56
41
57
## Dark mode
42
58
43
-
Windows Forms for .NET 9 introduced preliminary dark mode visual styling, with the goal of completing implementation in .NET 10.
59
+
Windows Forms has fully integrated dark mode support.
60
+
61
+
Windows Forms for .NET 9 introduced preliminary dark mode visual styling, but in an opt-in preview mode where you had to suppress [Compiler Error WFO5001](../compiler-messages/wfo5001.md) to use the feature. This feature is no longer guarded behind this compiler error starting with .NET 10.
62
+
63
+
The <xref:System.Windows.Forms.Application.SetColorMode(System.Windows.Forms.SystemColorMode)?displayProperty=nameWithType> API is no longer considered experimental.
44
64
45
-
-`ListView` column headers are now working.
46
-
-`StatusStrip` and `ToolStrip` render correctly.
47
-
- Buttons with `FlatStyle` set to `Standard` also render correctly.
48
-
-`ComboBox` and `RichTextBox` now render correctly when disabled.
65
+
## Clarification on ControlStyles `ApplyThemingImplicitly` usage
49
66
50
-
However, `RichTextBox` has a rendering issue when it's disabled. If the `RichTextBox` has formatted content, only the first few visible lines appear correctly, and the formatting might not fully apply in the disabled state. To workaround this issue, set it to read-only and manually disable selections.
67
+
Controls follow color mode set for the application, dark or light. However, there might be a case where you're composing and drawing your own controls, yet use existing Win32 common controls, such as the scroll bar. These controls remain light colored unless you opt in to applying the theme before the `CreateParams` property is read. There also might be a case where you inherit a control that already follows the theming, and you want to opt out so that you fully control the drawing, such as with a Button.
51
68
52
-
-`PropertyGrid` special buttons (ellipsis and drop-down) now render consistently in dark mode.
69
+
Regardless of your use case, override the <xref:System.Windows.Forms.Control.CreateParams?displayProperty=nameWithType> property, and call [`SetStyle(ControlStyles.ApplyThemingImplicitly, true)`](xref:System.Windows.Forms.ControlStyles.ApplyThemingImplicitly?displayProperty=nameWithType) (opt-in) or [`SetStyle(ControlStyles.ApplyThemingImplicitly, false)`](xref:System.Windows.Forms.ControlStyles.ApplyThemingImplicitly?displayProperty=nameWithType) (opt-out) before the parameters are read from the base class. You **cannot** set this style in your constructor. The base constructor reads the `CreateParams` property before calling your constructor. The following code snippet shows how to opt in:
53
70
54
-
- Many other fixes for color issues with dark mode.
0 commit comments