使用.net core3.0 正式版创建Winform程序

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

1、开发环境的准备

要做基于.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 设计器处于开发预览版的原因所在吧。

2、创建一个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开发路线,对企业或者个人来说,都是一个非常不错的开发场景。

原文地址:https://www.cnblogs.com/wuhuacong/p/11617175.html

时间: 2024-11-10 10:37:28

使用.net core3.0 正式版创建Winform程序的相关文章

cocos2d-x 3.0正式版 cmd创建project以及一键创建project

创建project研究了1个多小时,还真是不习惯啊. 首先,你要安装了vc2012而且下载并解压cocos2d-x 3.0正式版,假设没有安装,请翻阅我前面的文章. 接下来要下载android的sdk还有ndk 门:点击打开链接 ant 门:点击打开链接 一切准备就绪后,打开cocos2d-x文件夹下的setup.py,依据提示填写路径,然后又一次启动一下电脑. OK,以下进入正题 输入cmd打开控制台, 输入 cd   你的解压文件夹/cocos2d-x-3.0/tools/cocos2d-c

Cocos2d-x v3.0正式版尝鲜体验【3】 Label文本标签

Cocos2d-x在新版本中加入了新的Label API,和以往不同的是,2.x的版本是通过三个不同的类来创建不同的文本标签,而现在是模仿着精灵的创建方式,一个类创建不同形式的文本,不过核心内容还是差不多的. 这是新的Label类结构图 在2.x的系列中,有三种文本,分别是TTF,BMFont和Atlas.在3.0中,将TTF拆分成两种,下面就分别看一下这四种文本的创建. 1.Label::createWithTTF 这是需要使用ttf格式字体文件的创建方式 TTFConfig config("

Ubuntu14.04+eclipse下cocos2d-x3.0正式版环境的搭建

环境: ubuntu14.04 adt-bundle-linux-x86_64 android-ndk-r9d-linux-x86_64 cocos2d-x-3.0正式版 apache-ant 1.9.3 python 2.7(ubuntu自带) 加入环境变量 export ANDROID_SDK_ROOT=/home/yangming/adt-bundle-linux/sdk export PATH=${PATH}:/$ANDROID_SDK_ROOT/tools/ export PATH=$

[Android 新特性] 谷歌发布Android Studio开发工具1.0正式版(组图) 2014-12-09 09:35:40

Android Studio是谷歌于13年I/O大会推出的Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的Android开发工具用于开发和调试. 今日谷歌发布了Android studio的1.0正式版,增加了包括智能代码编辑,用户界面设计工具,性能分析工具等新功能,支持Android 5.0平台的开发. 谷歌也将推荐开发环境从Eclipse IDE调整为Android studio,还为Eclipse开发者提供了

cocos2d-x 3.0正式版 vs2013配置

cocos2d-x 3.0正式版与之前的版本号差异较大,曾经的教程非常多都不使用了. 1.从cocos2d-x官网http://www.cocos2d-x.org下载3.0版的压缩包,随便解压一个位置. 2.从python官网https://www.python.org/下载2.7版本号的python,安装并配置环境变量. 3.安装vs2013. 4.进入cocos2d-x的解压文件夹,进入build文件夹,双击cocos2d-win32.vc2012.sln,由于是2012的项目,所以提示要升

.NET Core 2.0和ASP.NET Core 2.0正式版抢先体验

.NET Standard 2.0 is final Broad platform support. .NET Standard 2.0 is supported on the following platforms: .NET Framework 4.6.1 .NET Core 2.0 Mono 5.4 Xamarin.iOS 10.14 Xamarin.Mac 3.8 Xamarin.Android 7.5 UWP is work in progress and will ship late

cocos2d-x笔记3 : 3.0正式版调用CocoStudio

cocos2d已经有一万个新建工程的方式和一万个API改动了,而且相互不兼容...触控科技的程序员真心不怕被打哦... 网上搜到的做法大多已经不行了,原因在上一段哦... 同样都是3.0,Alpha版.Bata版.Rc版.正式版,它们调用CocoStudio的方法都不一样哦...(求超越哦...) 记录一下3.0正式版使用CocoStudio的方法,是正式版,也就是最新版哦.(当然,只相对本周而言哦...) 一.添加库: 1.右击解决方案 -> 添加 -> 现有项目 2.进入项目目录的coco

Appium路线图及1.0正式版发布

Appium更新的速度极快,从我试用时候的0.12到1.0beta(0.18版本后就是1.0),完全符合移动互联网的节奏. 整理了testerhome上思寒发表的帖子,让我们来看下历程. 1. appium1.0 beta 和正式版里程碑 appium1.0 beta版本里程碑的issue列表https://github.com/appium/appium/issues?milestone=1&state=open appium1.0正式版本里程碑https://github.com/appiu

ThinkPHP V5.0 正式版发布

ThinkPHP5.0 正式版的发布,是团队中秋节送给PHP开发者最好的礼物!祝大家中秋快乐,事业顺利,用ThinkPHP开发更健康^_^ ThinkPHP5.0版本是一个颠覆和重构版本,官方团队历时十月,倾注了大量的时间和精力,采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了大量的优化,包括路由.日志.异常.模型.数据库.模板引擎和验证等模块都已经重构(基础教程qkxue.net),不适合原有3.2项目的升级