博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
winform 批量控件取值赋值
阅读量:5966 次
发布时间:2019-06-19

本文共 3317 字,大约阅读时间需要 11 分钟。

以前写winform 最多写几个文本框,最近需要入录一个人员信息,那好几十个字段,一下子干蒙了,这要是一个个取值赋值都写到明天了,于是就自己写了个方法,也不是什么高大上的,就是很简单很普通很low的方法。

废话少说上代码,注意,这块我就用了个文本框,你也可以找到所有控件,尽量控件name与实体字段一样。

public Dictionary
GetRS_InfoVue() { var dic = new Dictionary
(); foreach (Control ctl in groupBox1.Controls) { if (ctl is TextBox) { dic.Add(((TextBox)ctl).Name, ((TextBox)ctl).Text); } } return dic; }
View Code

根据控件,实体赋值

///         /// 属性赋值        ///         /// 
/// /// ///
public static T SetProperties
(T t, Dictionary
keyValues) { PropertyInfo[] propertys = t.GetType().GetProperties(); foreach (var item in propertys) { if (keyValues.ContainsKey(item.Name)) { //否是泛型 if (!item.PropertyType.IsGenericType) { if (!string.IsNullOrEmpty(keyValues[item.Name].ToString())) { item.SetValue(t, Convert.ChangeType(keyValues[item.Name], item.PropertyType), null); } } else { if (!string.IsNullOrEmpty(keyValues[item.Name].ToString())) { //泛型Nullable<> Type genericTypeDefinition = item.PropertyType.GetGenericTypeDefinition(); if (genericTypeDefinition == typeof(Nullable<>)) { item.SetValue(t, Convert.ChangeType(keyValues[item.Name], Nullable.GetUnderlyingType(item.PropertyType)), null); } } } } } if (keyValues.Count < 0) { return default(T); } return t; }
View Code

根据实体,控件赋值

public static Dictionary
GetProperties
(T t) { string tStr = string.Empty; if (t == null) { return null; } PropertyInfo[] properties = t.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public); if (properties.Length <= 0) { return null; } var dic = new Dictionary
(); foreach (PropertyInfo item in properties) { string name = item.Name; object value = item.GetValue(t, null); if (item.PropertyType.IsValueType || item.PropertyType.Name.StartsWith("String")) { if (!dic.ContainsKey(name)) { if (value != null) { dic.Add(name, value.ToString()); } else dic.Add(name, ""); } } } return dic; }
View Code

 

转载于:https://www.cnblogs.com/cuichaohui/p/9674541.html

你可能感兴趣的文章
nginx 查看每秒有多少访问量
查看>>
python正则表达式
查看>>
安装nagios中php安装报错 configure error xml2-config not foud
查看>>
php邮件发送类
查看>>
Python算法题----在列表中找到和为s的两个数字
查看>>
Gson解析Json
查看>>
Spring Cloud with Turbine
查看>>
关于Java浮点数运算精度丢失问题
查看>>
各种主流 SQLServer 迁移到 MySQL 工具对比
查看>>
路由访问控制列表的设计
查看>>
使用firefox44版本,弃用chrome
查看>>
《深入理解Java虚拟机》(二)java虚拟机运行时数据区
查看>>
MySQL for Java的SQL注入测试
查看>>
MySQL服务器意外关机-无法启动多实例
查看>>
golang实现人民币小写转大写
查看>>
分布式日志平台--ELKStack实践
查看>>
互联网思维
查看>>
ecshop备份数据 ecshop转移数据 ecshop更换主机
查看>>
手机将与瘦客户机争夺办公桌面
查看>>
ubuntu下针对php的thrift 安装折腾记录
查看>>