DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅、美观且易于使用的应用程序。DevExpress WinForm v20.1全新发布,想要体验?点击下载>>

DevExpress文档控件公开课第一弹报名通道开启,40分钟教你入门(Spreadsheet)控件!

前阵子一直期待.net core3.0正式版本的出来,以为这个版本出来,Winform程序又迎来一次新生了,不过9.23日出来的马上下载更新VS,创建新的.net core Winform项目,发现并没有Winform窗体设计器。而微软目前则是通过插件的方式,让我们单独下载Winform设计器,这个设计器还是预览版本,很多功能还是没有实现的,只能算是一个简单的雏形,本文案例介绍基于.net core3.0创建一个普通的WInform程序,让大家了解下基于.net core3.0创建的程序的大概模样。

一、开发环境的准备

要做基于.net core3.0的WInform开发,需要首先更新你的Visual Studio到16.3,这个版本是整合.net core3.0的,因此也是能够开发.net core Winform程序的基础。

其次是下载winforms-designer插件,这个是支持对Winform窗体的设计器,让我们可以通过拖动控件的方式进行界面的设计开发。

.NET Core Windows Forms 可视化设计器在将来一定是未来的Visual Studio 2019更新的一部分,但目前来说,想要可视化设计器,需要一个预发布的Visual Studio扩展。

完成这两个步骤,其他开发就和我们普通创建VS项目一样的。

创建项目后,我们可以打开对应的Winform窗体,并可以在工具箱里面看到一些Winform界面控件,好的是控件的大概和以前差不多,不好的事情是少了很多常规Winform控件,这个也是目前WInform 设计器处于开发预览版的原因所在吧。

二、创建一个Winform程序

为了创建一个简单测试的WInform程序,我们可以往里面添加一些WInform的界面控件,不过使用过程中,发现很多界面所需元素没有提供界面控件的支持,包括工具栏、属性里面都还不完善,如ImageList对象和Image对象的属性支持等,我们只能通过代码的方式进行使用。

创建一个简单的WInform界面,拖动了一些常规的控件,但是一些控件需要使用图片的,如ListView、PictureBox等这些,需要通过代码设置(无法通过属性加入的方式指定图片)

最后界面展示效果如下所示:

窗体源码如下所示:

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("你好,这是一个.net core的Winform程序", "提示信息",
MessageBoxButtons.OK, MessageBoxIcon.Information | MessageBoxIcon.Asterisk);
}private ImageList imageList = new ImageList();
private void Form1_Load(object sender, EventArgs e)
{
var image = Image.FromFile(Path.Combine(Application.StartupPath, "SplashScreen.png"));
if(image != null)
{
this.pictureBox1.Image = image;
}imageList.Images.Clear();
var iconPath = Path.Combine(Application.StartupPath, "icons");
var fileNames = Directory.GetFiles(iconPath, "*.ico");
foreach(string file in fileNames)
{
imageList.Images.Add(file, Image.FromFile(file));
}
this.treeView1.ImageList = imageList;
foreach(TreeNode node in this.treeView1.Nodes)
{
SetNodeImage(node);
}this.button1.Image = imageList.Images[2];
}private void SetNodeImage(TreeNode node)
{
foreach (TreeNode subNode in node.Nodes)
{
subNode.ImageIndex = subNode.Level;
subNode.SelectedImageIndex = subNode.Level;
SetNodeImage(subNode);
}
}

从中我们可以看到,.net core下的WInform程序,它的窗体元素或者相关对象,没有发生不一致命名的情况,用起来还是非常方便一致的,不过就是对应很多界面的功能,目前只能通过后台代码的方式进行补充,才能实现一个比较完整的效果,和.net Framework框架下已经完善的非常好的Winform开发,真的是差距不是一点半点,看来.net core winform开发的路还是很漫长,需要在工具层面更多的支持才行。

界面方案里面,我们看到命名空间也比以前少了很多了了。主要还是基于.net core 提供的WInform包。

我们再来看看程序目录下的文件如下所示:

由于目前我们还没有考虑第三方的.net core 层面的类库,因此这里没有使用第三方的DLL,以后整合的话,第三方相关的引用也是一个非常头大的问题,如果大多数常用的类库都有基于.net standard 的类库支持,那倒是好,否则可能会面临两难的抉择,不过.net core的Winform开发我觉得还是很值得期待的,毕竟引入一个整体的.net core开发路线,对企业或者个人来说,都是一个非常不错的开发场景。

本文转载自博客园-伍华聪


DevExpress技术交流群2:775869749      欢迎一起进群讨论

一招教你如何使用.Net Core 3.0正式版创建Winform程序相关推荐

  1. WinForms项目升级.Net Core 3.0之后,没有WinForm设计器?

    目录 .NET Conf 2019 Window Forms 设计器 2019 9.23-9.25召开了 .NET Conf 2019 大会,大会宣布了 .Net Core 3.0 正式版.这两天我也 ...

  2. .NET Core 3.0稳定版发布

    一年一度的 .NET 开发者盛会 .NET Conf 2019 已正式开始了(举办时间为 9.23-9.25).大会第一天最重磅也是最激动人心的消息莫过于 .NET Core 3.0 稳定版的发布.. ...

  3. .NET Core 3.0 稳定版发布

    一年一度的 .NET 开发者盛会 .NET Conf 2019 在昨日(举办时间为 9.23-9.25)正式开始了.大会第一天最重磅也是最激动人心的消息莫过于 .NET Core 3.0 稳定版的发布 ...

  4. 微软宣布ASP.NET Core 2.0正式支持OData标准

    近日,OData 团队在微软开发者博客上宣布,ASP.NET Core 2.0 已正式支持 OData 标准,开发者现在可通过包管理器 NuGet 来获取 Microsoft.AspNetCore.O ...

  5. .NET Core 3.0 正式公布:新特性详细解读

    点击蓝字"dotNET匠人"关注我哟 加个"星标★",每日 7:15,好文必达! 作者丨Richard Lander 译者丨核子可乐 策划丨赵钰莹 近日,.NE ...

  6. [翻译] ASP.NET Core 2.2 正式版发布

    本文为翻译,原文地址:https://blogs.msdn.microsoft.com/webdev/2018/12/04/asp-net-core-2-2-available-today/ 我(文章 ...

  7. 福爆 | 博客升级 .NET Core 3.0 又踩一坑

    点击上方蓝字关注"汪宇杰博客" 导语 昨天刚发了一篇< 生产大爆炸 发生问题的是已经被删除的博客文章,正常情况下,这些不存在的文章会直接显示自定义的404页面,但实际上产生了 ...

  8. 全新尝试|ComponentOne WinForm和.NET Core 3.0

    在微软 Build 2018 开发者大会上,.NET 团队公布了 .NET Core 的下一个主要版本 .NET Core 3.0 的规划蓝图:.NET Core 3将开始支持 Windows 桌面应 ...

  9. 干翻Java_干翻Java!微软跨平台.NET Core 2.0版发布

    跨平台 .NET Core 2.0 版发布" /> 下载 Visual Studio 2017 version 15.3 下载 .NET Core 2.0 下载 Visual Stud ...

  10. 新的尝试!ComponentOne WinForm 和 .NET Core 3.0

    在微软 Build 2018 开发者大会上,.NET 团队公布了 .NET Core 的下一个主要版本 .NET Core 3.0 的规划蓝图:.NET Core 3将开始支持Windows桌面应用程 ...

最新文章

  1. wmic 命令的一个汇总,功能很强大
  2. 神策 FM | “微信之父”张小龙的四大关键产品原则
  3. JVM 分析工具和查看命令,超详细
  4. ASP.NET Core 查看应用状态和统计
  5. 第十节: 利用SQLServer实现Quartz的持久化和双机热备的集群模式
  6. php的实体字符表,php htmlspecialchars_decode() 函数把预定义的 HTML 实体转换为字符
  7. 【项目调研+论文阅读】(目录)中文实体识别研究方法综述 day6
  8. 对口计算机专业分数线,湖南省2021年普通高校招生本科批(职高对口类)平行一志愿投档分数线公布...
  9. 如何远程进入linux7.2图形界面,CentOS7.2安装VNC,让Windows远程连接CentOS 7.2 图形化界面...
  10. ubuntu vscode_17. ubuntu设为服务器+vscode远程开发
  11. ONVIF网络摄像头(IPC)客户端开发—最简RTSP客户端实现
  12. Win11怎么把桌面文件路径改到D盘
  13. 碳中和目标下A股先锋调研:钢铁行业加速碳达峰 多行业影响已现
  14. 【数据传输 1】服务器—>客户端之间的数据类型转换
  15. 2018 IEEE极限编程大赛 题解
  16. 字节跳动Web Infra发起 Modern.js 开源项目,打造现代 Web 工程体系
  17. css选择器的优先级和权重问题
  18. CAD进阶练习(五)
  19. 2018/3/6 工作日志
  20. 推荐好玩又实用的APP,杜绝无聊

热门文章

  1. bolt界面引擎学习笔记一
  2. 基于JAVA WEB的网上书店的设计与实现
  3. 网络代理服务器工作原理
  4. 快应用采坑(3)-使用差别
  5. 甘肃暴雨强度公式_我国若干城暴雨强度公式列表.doc
  6. kali linux捉肉鸡教程,使用Kali中的Metasploit生成木马控制Windows系统
  7. linux打jar包命令行,windows下命令行打jar包方法
  8. Maven基础篇之Maven实战入门-最新IDEA版maven
  9. 【数学建模】2016年全国大学生数学建模-系泊系统全面解析(附MATLAB实现部分代码)
  10. 项目管理软件浮出水面(转)