zl程序教程

您现在的位置是:首页 >  工具

当前栏目

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