.net core 开发 Windows Forms 程序
我是一名 ASP.NET 程序员,专注于 B/S 项目开发。累计文章阅读量超过一千万,我的博客主页地址:https://www.itsvse.com/blog_xzz.html
引言
.net core 3.1 是微软LTS长期3年支持版本,正式发布于2019-12-03,并且在windows平台上支持了Winfrom跟WPF桌面应用。本文将介绍使用 vs 2019 开发 Windows Forms 桌面应用程序。
开发 Windows Forms 程序
首先,打开 vs 2019 ide 工具,新建一个 Windows Forms App(.Net Core) 项目,如下图:

默认是 .net core 3.1 的框架。
双击 Form1 发现并没有弹出窗体设计器,what?

没有5年10年的开发经验,让我直接手写 WinForm 代码,这不是给我开玩笑嘛。
最后,发现需要安装“winforms-designer”插件,才能使用窗体设计器,使用拖拽控件的方式。
https://aka.ms/winforms-designer
在Visual Studio 16.5 Preview 1中更新到.NET Core Windows Forms设计器
我们很高兴宣布.NET Core Windows窗体设计器的新预览版,可在Visual Studio 16.5 Preview 1中使用。
令人欣慰的是,设计师现在已成为Visual Studio的一部分!这意味着不再需要从单独的VSIX安装.NET Core Windows Forms设计器!
要使用设计器:
您必须使用Visual Studio 16.5 Preview 1或更高版本。
您需要在Visual Studio中启用设计器。转到“ 工具” >“ 选项” >“ 环境” >“ 预览功能”,然后选择“ 将预览Windows窗体设计器用于.NET Core应用程序”选项。

然后,开始更新 vs 2019,点击导航栏的:工具 - 检查更新,发现新版本,更新之。

发现事情并不是那么简单,更新的是发布版本,只有预览版才有这功能,正式版本最高才 16.4.2。
解决办法
1.单独的VSIX安装.NET Core Windows Forms设计器
2.项目做如下更改:
将
<TargetFramework>netcoreapp3.1</TargetFramework>
更改为
<TargetFrameworks>net472;netcoreapp3.1</TargetFrameworks>
重新编译之,报错如下:
- “Application”未包含“SetHighDpiMode”的定义
- 当前上下文中不存在名称“HighDpiMode”
点击跳转到错误代码,注释之。
//Application.SetHighDpiMode(HighDpiMode.SystemAware);
再次双击“Form1.cs”文件,就可以看到我们的设计器了,我们就可以拖拖控件了。如下图:

原文:https://down.itsvse.com/k/os0740.html
.net core 开发 Windows Forms 程序的更多相关文章
- 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0
本文转自 https://blog.csdn.net/WPwalter/article/details/82859449 使用 .NET Core 3.0 Desktop API Analyzer 分 ...
- 【转】.net core开发windows服务
.net core开发windows服务 文建Blog
- 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer )
今年五月的 Build 大会上,微软说 .NET Core 3.0 将带来 WPF / Windows Forms 这些桌面应用的支持.当然,是通过 Windows 兼容包(Windows Compa ...
- .NET开发Windows Service程序 - Topshelf
在实际项目开发过程中,会经常写一些类似定时检查,应用监控的应用.这类应用在windows平台通常都会写成window service程序. 在百度上搜索一下'c#开发windows service', ...
- VC++ 2013 开发windows窗体程序
开发工具版本:Visual Studio Express 2013 for Windows Desktop 1. 新建Visual C++下面的"Win32 Project" 2. ...
- Qt入门——使用QT+VS2008开发windows应用程序
1.文件->新建->项目 Qt4 Projects 右边已安装模板当中选择At Application. 确定 2.选择需要使用的QT库 下一步 3. “class name”:指定类的名 ...
- 如何为Windows Forms应用程序添加启动参数(Start-Up Parameters)
很多场合下,我们需要通过命令行或者快捷方式在Windows Forms程序启动时向其传递参数. 这些参数可能是用来加载某一个文档,或者是应用程序的初始化配置文件. 特别是对那些需要高度自定义配置的大程 ...
- 开发Windows程序的三种方式
软件开发方式一共有三种:SDK方式.MFC开发方式.托管环境的开发都是基于消息的开发 SDK方式 原装api的调用SDK方式使用C语言和Windows应用程序编程接口(Windows API)来开发W ...
- Windows Forms(二)
导读 1.用VS创建一个Windows Forms程序 2.分析上面的程序 3.Mediator pattern(中介者模式) 4.卡UI怎么办——BackgroundWorker组件 用VS创建一个 ...
随机推荐
- printf的用法进阶
今天来好好总结一下C语言中关于printf的常用用法 基础部分 printf("%d\n", numInt); printf("%f\n", numFloat) ...
- Windows 7中的“帮助和支持”无法打开怎么办?
win7 X64 将下面的代码导入注册表 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.xml] @="xmlfile&q ...
- MSVC下快速Unicode I/O
http://blog.kingsamchen.com/archives/863 如果需要往console输出包含非ASCII字符的宽字符串,一个比较快速的方法是使用WriteConsoleW这个AP ...
- 程序为什么开头总是PUSH EBP
因为对堆栈的操作寄存器有EBP和ESP两个.EBP是堆栈的基址,ESP一直指向栈顶(只要有PUSH动作,ESP就自动减小,栈的生长方向从大往小,不需要手动改变ESP.)所以要压入EBP,然后再用EBP ...
- MyBatis基础_连接池与事务、动态SQL、注解开发
一.MyBatis连接池及事务控制 1.连接池 在实际开发中,都会使用连接池,因为它可以减少获取连接缩消耗的时间.所谓连接池,就是存储数据库连接的容器.连接池中存储一定数量的数据库连接,当线程需要使用 ...
- linux笔记之解压
从1.15版本开始tar就可以自动识别压缩的格式,故不需人为区分压缩格式就能正确解压: Linux下常见的压缩包格式有5种:zip tar.gz tar.bz2 tar.xz tar.Z 其中tar是 ...
- 一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具
一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具 Intro DbTool 是一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具,原本 ...
- Linux 内存分析工具——free命令
在Linux系统经常被用作服务器系统.当服务器内存吃紧的时候,free命令是我们最常使用的内存分析工具. free使用介绍 free命令可以显示Linux系统中空闲的.已用的物理内存及swap内存,及 ...
- [Effective Java 读书笔记] 第三章类和接口 第二十-二十一条
第二十条 用函数对象表示策略 函数指针(JAVA的函数指针,是指使用对象的引用来作为参数,传递给另一个对象的方法)主要用来实现策略模式,为了在JAVA中实现这种模式,要申明一个接口来表示该策略,并为每 ...
- 2020.2.22 bzoj5336 party
#include<iostream> #include<cstdio> #include<cstring> #include<cctype> #incl ...