AutoControlMapper 基于.net 的一个WinForm自动更新和读取类

使用AutoControlMapper进行控件信息的自动映射和读取

AutoControlMapper 一个通过Contorl.Tag属性,将变量值与控件自动映射的工具类,使用起来也非常简单。

AutoControlMapper介绍

总述

  在使用Winform开发的时候,你是否为将对象信息更新到Winform和从Winform中更新到对象而苦恼。
  如下图,当一个对象有多个属性都需要更新到UI和从UI读取更新到对象时,总是需要重复的编写这部分代码。
有多个控件需要更新
  而现在你不需要了,比如,我想将一个Person类的属性更新到界面,你所需要的就是为每一个需要展示的控件设置它的.Tag属性,比如tb_name.Tag="Name";,而数据更新,就交给AutoControlMapper就可以了。

AutoControlMapper总共仅有3个函数

C#
//注册待更新到控件的变量
public void RegisterVariableObject(string objName, object obj);
//将对象内容更新到UI
public void UpdateToUI(Control ctl_in);
//从UI将内容更新到对象
public void UpdateFromUI( Control ctl_in);

使用示例

Form frm = new Control();
AutoControlMapper _acm = new AutoControlMapper();//实例化对象
_acm.RegisterVariableObject(null, obj);//注册变量
_acm.UpdateToUI(frm );//更新到控件
_acm.UpdateFromUI(frm );//更新到变量

具体步骤

我们假设有一个窗体控件

Form frm_main;
|-TextBox tb_name;
|-TextBox tb_age;

和一个待显示的变量

Person person;
|-string Name;
|-string Age;

  1. 修改控件的Tag属性
tb_name.Tag= "Name";//指向person.Name
tb_age.Tag= "Age";//指向person.Age

2.编辑代码

//更新变量到控件
AutoControlMapper _acm = new AutoControlMapper();//实例化对象
_acm.RegisterVariableObject(null, person);//注册 person
_acm.UpdateToUI(frm_main);//导入frm_main,他会将变量的值更新到frm_main下面的所有控件(不包括它自身)
//更新控件到变量
AutoControlMapper _acm = new AutoControlMapper();//实例化对象
_acm.RegisterVariableObject(null, person);//注册 person
_acm.UpdateFromUI(frm_main);//导入frm_main,他会更新frm_main下面的所有控件的值到已注册的变量(不包括它自身)

项目的Git地址

–>点此访问AutoControlMapper的Git地址

注意事项

1.这个版本暂时只支持同一个属性的单次注册,如果同一个属性,多次注册,则会报错。
2.当变量的值改变时,需要重新注册,控件的值不会自动更新;所以推荐每次更新控件的时候,都重新注册变量。

一、软件开发环境以及开发工具: 框架:.NET Framework 4.0 工具:Visual Studio 2017 插件:DevExpress 18.1.7 环境:IIS 7 二、实现步骤 (1)在项目中创建一个名为WinformAutoUpdate.APP的Winform窗体应用工程,并将默认的Form1.cs窗体文件重命名为MainFrm.cs作为主程序窗体 创建主程序窗体 (2)在项目中再创建一个名为AutoUpdateTask的Winform应用程序工程,并将默认的Form1.cs窗体文件重命名为AutoUpdateTaskFrm.cs作为更新程序窗体 创建更新程序窗体 (3)在更新程序窗体中放入图上所示的相关控件; 进度条控件用于显示更新进度,放入一个Button按钮控件用于用户根据提示进行操作! 实现思路: 1、将更新程序放入磁盘的目录下面,并将其放在已经发布了的IIS中 当用户在运行主程序窗体并点击左上角的更新按钮时,弹出程序更新窗体,并先自动从IIS中拉取updateList.xml文件,然后与本地程序作对比,检测是否需要升级软件; 如果有新版本发布,则点击“立即更新”按钮,程序将从IIS中拉取新发布的ZIP软件包,并自动解压到主程序目录中,覆盖主程序目录中的相关文件(这里值得注意的是,在解压程序之前,我们需要先结束主程序的进程,不然会因主程序进程正在使用而导致报错,另外,我们用到的插件是ICSharpCode.SharpZipLib.dll第三方动态链接库,网上有现成的,可以直接Down下来用);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值