visual studio 2019使用net core3.0創(chuàng)建winform無法使用窗體設計器
微軟發(fā)布正式版net core3.0后,迫不及待的想體驗一下用visual studio 2019在net core3.0下創(chuàng)建winform程序。創(chuàng)建方法很簡單,和以前visual studio版本步驟差不多。
創(chuàng)建完成之后,尷尬的事情發(fā)生了,無法使用窗體設計器,雙擊Form1.cs文件不行,使用快捷鍵shift+F7也不行,在網上找了很久,發(fā)現(xiàn)好多人都遇到過這種問題,目前有兩種解決方案
方案1 項目中創(chuàng)建多目標框架,包含net framework和net core。
打開csproj文件,將目標框架更改為net452和netcoreapp3.0。最終修改結果如下:
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"> <PropertyGroup> <OutputType>WinExe</OutputType> <TargetFrameworks>net452;netcoreapp3.0</TargetFrameworks> <UseWindowsForms>true</UseWindowsForms> <ApplicationIcon /> <StartupObject /> <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects> </PropertyGroup> </Project>
注意,必須將TargetFramework更改為復數TargetFrameworks。
更改完之后,系統(tǒng)會提示Application未包含“SetHighDpiMode”的定義”和“當前上下文中不存在名稱“HighDpiMode”
這是由于net core3.0加載窗體程序時多了下面一行代碼:
Application.SetHighDpiMode(HighDpiMode.SystemAware);
我們只需要用#If過濾一下即可:
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
#if netcoreapp3_0
Application.SetHighDpiMode(HighDpiMode.SystemAware);
#endif
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
方案2 添加winformsdesigner插件
創(chuàng)建winform core程序,點擊擴展–>管理擴展,打開擴展管理窗體,選中聯(lián)機,搜索winform designer。選擇安裝即可。
或者手動下載:winformsdesigner
參考地址:https://github.com/dotnet/winforms/tree/master/Documentation/designer-releases
添加完之后,期待已久的窗體設計器就可以出來了。

我目前使用的visual studio 2019的版本信息

到此這篇關于visual studio 2019使用net core3.0創(chuàng)建winform無法使用窗體設計器的文章就介紹到這了,更多相關vs2019創(chuàng)建winform內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
.Net Core3.0 WEB API中使用FluentValidation驗證(批量注入)
這篇文章主要介紹了.Net Core3.0 WEB API中使用FluentValidation驗證(批量注入),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12
.Net Core自動化部署之利用docker版jenkins部署dotnetcore應用的方法
這篇文章主要給大家介紹了關于.Net Core自動化部署之利用docker版jenkins部署dotnetcore應用的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-06-06
asp.net Repeater取得CheckBox選中的某行某個值
Repeater取得CheckBox選中的某行某個值的實現(xiàn)代碼2008-07-07
ASP.NET SignaiR 實現(xiàn)消息的即時推送,并使用Push.js實現(xiàn)通知的示例代碼
ASP.NET SignalR 是為 ASP.NET 開發(fā)人員提供的一個庫,可以簡化開發(fā)人員將實時 Web 功能添加到應用程序的過程。有興趣的可以了解一下。2017-01-01

