Wisdombud.CommonTool及其应用详解编程语言
2023-06-13 09:11:54 时间
List Student data = new List Student
Student s1 = new Student() { Id = Guid.NewGuid().ToString(), Gender = "男", Grade = "一年级", Name = "小王" };
data.Add(s1);
List string hideList = new List string
hideList.Add("Id");
this.wDataGridView1.MyDataList = data;
this.wDataGridView1.MyHideList = hideList;
this.wDataGridView1.MyType = typeof(Student);
this.wDataGridView1.Repaint();
Student entity = this.wDataGridView1.GetSelect0BindItem() as Student;
MessageBox.Show(entity.Name);
2. 源码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Reflection; using System.Windows.Forms; namespace Wisdombud.CommonTool.UI public partial class WDataGridView : DataGridView public IEnumerable Object MyDataList { get; set; } public Type MyType { get; set; } public IEnumerable string MyHideList { get; set; } public WDataGridView() InitializeComponent(); this.Init(); public WDataGridView(Type MyType, IEnumerable Object MyDataList, IEnumerable string MyHideList) this.MyType = MyType; this.MyHideList = MyHideList; this.MyDataList = MyDataList; InitializeComponent(); this.Init(); private void Init() this.SelectionMode = DataGridViewSelectionMode.FullRowSelect; this.EditMode = DataGridViewEditMode.EditProgrammatically; this.RowHeadersVisible = false; this.Dock = DockStyle.Fill; this.BackgroundColor = System.Drawing.SystemColors.Control; public WDataGridView(IContainer container) container.Add(this); InitializeComponent(); this.Init(); public Object GetSelect0BindItem() if (this.SelectedRows.Count == 0) return null; return this.SelectedRows[0].DataBoundItem; public void Repaint() if (this.MyHideList == null) this.MyHideList = new List string this.DataSource = this.MyDataList; if (this.MyDataList != null this.MyType != null) int i = 0; foreach (PropertyInfo pi in MyType.GetProperties()) string captionName = pi.Name; object[] objs = pi.GetCustomAttributes(typeof(DisplayNameAttribute), true); if (this.Columns.Count = i) return; this.Columns[i].Visible = true; if (this.MyHideList.Contains(pi.Name)) this.Columns[i].Visible = false; else this.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; if (objs.Length 0) captionName = ((DisplayNameAttribute)objs[0]).DisplayName; this.Columns[i].HeaderText = captionName; i++; if (i == this.Columns.Count) break;
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/20953.html
cjavawindows相关文章
- js/jquery各种宽高的理解和应用详解编程语言
- spring cloud教程之使用spring boot创建一个应用详解编程语言
- android获取应用信息工具类详解编程语言
- Gson的应用测试详解编程语言
- ApiCloud重新定义移动应用开发详解编程语言
- 使用express搭建第一个Web应用Node.js初学详解编程语言
- 图的简单应用(C/C++实现)详解编程语言
- 线性表的链式存储结构的实现及其应用(C/C++实现)详解编程语言
- C/C++中peek函数的原理及应用详解编程语言
- 高级HTML5 移动应用框架 Ionic v3.0.1 发布详解编程语言
- 高级HTML5 移动应用框架 Ionic v2.3.0 发布详解编程语言
- 高级HTML5 移动应用框架 Ionic v2.0.0-rc.4 发布详解编程语言
- java 正则表达式的应用:读取文件,获取其中的电话号码详解编程语言
- 什么情况下适合在knockout项目中应用KOMapper详解编程语言
- Oracle应用拓展新领域,创造更多可能(oracle应用场景)
- OO(面向对象在ABAP中的应用)详解编程语言
- bbs项目中对反向查询和分组查询的具体的应用详解编程语言
- 应用Xml.Linq读xml文件详解编程语言
- 应用TcpListener实现的socket服务器端详解编程语言
- C#应用Newtonsoft.Json操作json[2]-反序列化不定类型详解编程语言
- C#应用BindingSource实现数据同步的方法