我的.Net Core 3.0 windows 桌面程序界面绘制 -- 从.net framework复制代码法

本文介绍了一种巧妙的方法,通过在.Net Framework中设计GUI界面,然后将代码复制到.Net Core项目,来避免手动编写.Net Core Windows Forms的界面代码。详细步骤包括变量声明、实例化、设置控件属性、添加控件和复制事件,以及解决界面显示问题的技巧。
摘要由CSDN通过智能技术生成

今天想用 .net core做个小程序。却意外的发现没有可视化编辑器!!!(重要的事情用三个感叹号)

虽然我搞了十多年的 .net 开发,但是我确实从来没有自己编辑过 Designer.cs 这个文件。微软不是不让我编辑么!

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>

我于是去网上搜,结果,人家确实是编辑Designer.cs文件的。

不过,我还是想动一点小聪明,逃避学习编辑 Designer.cs 。我想到的办法很简单,就是先用老的Windows Form(.net framework)程序,可视化的绘制好界面,然后复制到新的 windows form (.net core)。

绘制 windows form ( .net framework )

在这里插入图片描述
我的目标是绘制一个下拉框Combobox, 一个文本框textbox, 两个按钮 Buttons。相信绝大多数人如果直接敲代码绘制这样一个简单的windows form,也要费半天劲。有了工具栏(Toolbox),就简单多了。

别忘了双击两个按钮,把事件也加上。

复制代码

这四个控件的代码,分为四个部分。分别是变量声明部分,变量实例化部分,具体设置部分,添加控件部分。另外事件也要复制过去。

变量声明部分

既给Form四个属性(Property),分别对应四个控件。所以,这段代码肯定在class的下面。具体到Designer.cs文件里,它们位于最底部。

如下:

        private System.Windows.Forms.TextBox srtFileTextBox;
        private System.Windows.Forms.Button browseButton;
        private System.Windows.Forms.Button okayButton;
        private System.Windows.Forms.ComboBox tvShowComboBox;

找到Windows Forms(.net core)程序的对应部分,复制过去。

变量实例化部分

这部分位于InitializeComponent函数的最开头。

        private void InitializeComponent()
        {
   
            this.srtFileTextBox = new System.Windows.Forms.TextBox();
            this.browseButton = new System.Windows.Forms.Button();
            this.okayButton = new System.Windows.Forms.Button();
            this
这是一款真正意义上适合软件界面开发的C++界面库。采用XML管理GDI资源(如:图片、字体、颜色等),最大程度将界面与逻辑分开,让程序员有更多的时间去进行软件内部的逻辑处理。SKINSE扩展了非常丰富的API接口,兼容其他界面控件,使界面开发更加灵活、高效。SkinSE只用到了windows几个底层的核心库,没有用到(MFC/ATL等第三方库),采用纯API编写,采用C语言导出方式,增强可移植性,可以用于多种计算机语言。 1.SKINSE界面库内部没有完全采用HOOK拦截窗口的机制,主要采用子类化控件,修改窗口过程函数的方式进行界面美化。但是内置HOOK技术,可以动态设置HOOK,保证了SKINSE在整理构架上的灵活性。 2.SKINSE界面库内置DirectUI绘制思想,将界面绘制元素抽象成图片、文本、矩形区域、线条、动画,并且内置EventItem、DrawItem绘制机制。可以将这些绘制元素以及绘制机制组合开发,实现按钮、单选框、复选框、分组框、Tab控件、动画控件等界面控件。 3.SKINSE界面库提供了非常丰富的API接口,最大限度的让SKINSE界面库更加透明化、个性化,让SKINSE界面库的使用范围得到最大延伸。 4.SKINSE界面库在子类化进行控件美化的时候,尽量不修改控件的默认属性,最大程度地兼容window标准控件的默认属性。比如,目前市场上很多界面库在绘制窗口标题栏的时候,去掉了窗口的WS_CAPTION属性, 导致GetClientRect、GetWindowRect方失效,从而加大了界面开发和设计的难度,当然也导致不能完美支持SDI/MDI等界面框架。 5.SKINSE界面库提供了界面控件动态布局的特性。省去了程序开发中最为繁琐的窗口控件位置的调整。只需要调整一下XML配置属性,就可以进行完美布局。 6.SKINSE界面库支持BMP、ICO、PNG、JPG等图片格式,支持皮肤色调变换,提供SKINSE内部的图像引擎接口。 7.SKINSE界面库支持SDI、MDI等界面框架,支持20余种界面控件,完整兼容window 2000、window2003、window XP、vista、window7当前的主流操作系统。并且支持window平台的VC、.NET、VB6、Delphi、C++ Builder、PowerBuilder、易语言等多种计算机语言开发。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

织网者Eric

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值