Using the Classic WinForms Designer in WinForms Core
At this point, a dedicated WinForms Designer for WinForms Core is not yet available. As a workaround, you can use Visual Studio's option to work with linked files and use its WinForms Designer for the Classic Framework.
Here is how it is done.
TIP
Creating a WinForms Core App
Visual Studio does not allow it currently to create a new WinForms Core App from within Visual Studio directly. If you want to design a WinForms Core app, you need to create the App first from the command line:
Open your favorite console, and create a new folder with the application's name. The folder name will later become the project's name as well. Change to that folder.
Now, create a new WinForms application with the dotnet new command, using the templates for WinForms.
TIP
NOTE
Templates for Visual Basic are currently in development (so dotnet new winforms -lang VB will eventually work!), but they are not available yet. Visual Basic, however, is already supported; as a workaround for the time being, you can create an empty Core Console VB app, and rename and patch the project files accordingly (just copy those definitions over from a C# app). Also, note that the Application Framework in Visual Basic is not supported in this version.
After creating it, you can test the application directly by starting it with
which builds and starts the application.
TIP - If you only want to rebuild the application, use:
Preparing the WinForms Core App for the Classic Designer
-
Start Visual Studio and open this project.
-
Save the project in Visual Studio, and with that, also save the Solution file.
-
Open the context menu of the solution (not the project!) in the Solution Explorer and chose Add New Project.

-
In the Installed Templates section, pick Visual C# (this works for Visual Basic equally; see the comments for Visual Basic above), Windows Desktop, and then click Windows Forms App (.NET Framework) from the list of installed templates.

-
Name the new classic Framework project as the Core project, but add .Designer to it (so, for example, if your Core project is named MyWinFormApp, name the classic Framework App MyWinFormsApp.Designer).
-
In the properties of the Classic Framework App (context menu on the project in the Solution Explorer), rename the default namespace to the Core App's default namespace.

-
Erase the existing Form files in both projects.
-
In the Classing Framework project, open the project's context menu, and click Add New Item.

-
In the section list, click on Windows Forms, and chose Windows Form from the installed templates.

-
Enter the name for the new Form/User Control.
-
Click Add.
IMPORTANT - Now, cause some change in the Designer on the form. For example, resize the form for a couple of pixels, or change the Text property of the form, so the resource file for it can be generated and saved. After that, save the form.
-
In the Solution Explorer, click on the form, and press (Ctrl)(x) to cut it the file.
-
Select the Core WinForms project in the Solution Explorer, and press (Ctrl)(v) to insert the files. Check that the main form file, the .designer file and the resource file for the form are all present.
-
Now, to have the exact same file back in the WinForms Classic Framework Designer, we need to use Visual Studio's file link option. Remember: We can only use the Classic Designer, but we want to have only one set of files. So, the form files, of course, belong to the Core App. But we want to edit them in the context of the Classic Framework App (thus using the Classic Designer). So, we link the existing Core Form files to the classic app, and to this end, you open the context menu on the classic project in the solution explorer, and pick Add and Existing Item.
-
In the File Open Dialog, navigate to the Core app, and find the Form.cs, Form.Designer.cs and Form.resx files. (Replace Form by the name of your form.) Select all of them, but DO NOT click Add yet!

-
Open the pulldown menu of the Add dropdown button and click Add as Link.
-
Compile the solution to see if the file references got set up correctly.
-
As the last but important step, we need to re-nest the linked form files. If you installed the File Nesting Visual Studio Extension (see above), then that is done easily: Select both the Form.Designer.cs and Form.resx file, and from the context menu click File Nesting and Nest Items. In the dialog, pick the main form file (Form.cs), and click OK.
Now, whenever you need to use the Designer on one of the Core Form or UserControl files, simply open the linked files in the Classic Framework project with the Classic Windows Forms Designer.
shenzhi yuPosted Feb 15, 2020, 4:16 PM
One step added: go configuration manager to uncheck 'build' for designer project. Also, close the form in Core project before open it in classic project.
Paul CohenPosted Nov 26, 2019, 9:05 PM
Does this still work with VB and 16.4.0 Preview 6.0? It tries to enable the Core Preview designer.
Rahul JainPosted Apr 9, 2019, 11:48 AM
Thank You for writing this article I have a question can we port this app and execute it on Linux ?