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

原创 2017年11月09日 15:57:16

使用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 winform软件自动更新

关于.NET windows软件实现自动更新,本人今天写了一个DEMO,供大家参考。      大家先看下效果图:             主要涉及到两个方面          1. 更新...
  • zx13525079024
  • zx13525079024
  • 2012年03月23日 17:12
  • 15700

在WinForm中使用Web Services 来实现 软件 自动升级( Auto Update ) (C#)

winform程序相对web程序而言,功能更强大,编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,面对这个实际问题,在最近的一个小项目中,本人设计了一个通过软件实现自动升级技术方案,弥补了...
  • skyover
  • skyover
  • 2004年06月08日 10:09
  • 1850

C#实现自动升级(附源码)

目前主流的程序自动升级策略是,重新下载最新的安装包,然后重新安装整个客户端。这种方式虽然简单直观,但是缺陷也很明显。比如,即使整个客户端有100M,而本次更新仅仅只是修改了一个1k大小的dll,那也意...
  • zhuweisky
  • zhuweisky
  • 2015年12月31日 08:41
  • 22859

WinForm使用WebService自动升级 【转】

[收藏此页] [打印] 【IT168知识库】  winform程序相对web程序而言,功能更强大,编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级...
  • susubuhui
  • susubuhui
  • 2013年04月28日 14:28
  • 488

实现.NET应用程序的自动更新

如何在一天内做到日收入1000元的方法应用程序更新的方法一般有两种:一是通知用户(比如发E-mail),让用户到指定的网站地址下载更新的程序;二是将更新的职责从用户那边转移到应用程序自身,由应用程序自...
  • hfzsjz
  • hfzsjz
  • 2007年05月24日 15:25
  • 1263

通过反射加载DLL部分更新应用程序(winform)

方法:加载dll,再界面创建控件,注册控件的点击事件  using System; using System.Collections.Generic; using System.ComponentMo...
  • xgugu1210
  • xgugu1210
  • 2016年03月11日 17:35
  • 248

基于DDD的.NET开发框架 - ABP分层设计

一、为什么要分层 分层架构是所有架构的鼻祖,分层的作用就是隔离,不过,我们有时候有个误解,就是把层和程序集对应起来,就比如简单三层架构中,在你的解决方案中,一般会有三个程序集项目:XXUI.dl...
  • orichisonic
  • orichisonic
  • 2016年05月20日 10:32
  • 3096

Winform程序自动更新

Winform程序自动更新我也是第一次做,网上找了自动更新的源码,后来又根据在网上看到的一些方法,自己试了很久,最终还是有写错误,所以花了钱让别人帮忙调试成功的,下面是我自己捣腾出来的,方便大家借鉴,...
  • zhaozhimao
  • zhaozhimao
  • 2015年11月28日 15:22
  • 2167

C# winform自动更新程序扫盲

http://bbs.bccn.net/viewthread.php?tid=428255&extra=page%3D1%26amp%3Bfilter%3Ddigest&page=1 自动更新 我直...
  • u011981242
  • u011981242
  • 2016年04月14日 09:46
  • 9650

winform应用程序自动更新版本

我现在做的是由更新程序来更新winform程序,但是最后的目的是想winform自己本身能够更新吧,还是没找到好的方法,现记录下有update.exe来更新winform.exe。 1.先建一个记录...
  • gxxloveszj
  • gxxloveszj
  • 2012年12月10日 15:35
  • 4150
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AutoControlMapper 基于.net 的一个WinForm自动更新和读取类
举报原因:
原因补充:

(最多只允许输入30个字)