• Wisdombud.CommonTool及其应用


    @(编程)

    1. 用法

    student类

    using System.ComponentModel;
    
    namespace WindowsFormsApplication1
    {
        public class Student
        {
            public string Id { get; set; }
            [DisplayName("姓名")]
            public string Name { get; set; }
            [DisplayName("性别")]
    
            public string Gender { get; set; }
    
    
            [DisplayName("年级")]
            public string Grade { get; set; }
    
            [DisplayName("班级")]
            public string Grade111 { get; set; }
    
        }
    }
    
    

    应用

    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                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;
                        }
                    }
                }
            }
        }
    }
    
  • 相关阅读:
    flash 的跑到模型(转)
    (转载)GC调用时机,特殊内存回收时机,及调试时强制GC
    C语言面试那些事儿──一道指针与数组问题
    【原创】Performanced C++ 经验规则 第五条:再谈重载、覆盖和隐藏
    【原创】Performanced C++ 经验规则 第二条:你不知道的构造函数(中)
    算法探讨——Top K算法详细解析(转载)
    【原创】Performanced C++ 经验规则 目录
    【原创】Performanced C++ 经验规则 第四条:静态和多态,亦敌亦友
    Mac OS X Git安装教程
    【原创】Performanced C++ 经验规则 第三条:你不知道的构造函数(下)
  • 原文地址:https://www.cnblogs.com/wardensky/p/5342055.html
Copyright © 2020-2023  润新知