在winform项目中用PropertyGrid显示、编辑集合的属性

  • 1 添加员工类
  • 2 添加员工类集合
  • 3 添加员工集合编辑器类
  • 4 添加公司类
  • 5 在PropertyGrid中显示对象属性
  • 6 获取编辑后的属性
  • 7 效果
    • (1)公司对象属性
    • (2)员工集合
    • (3)获取修改后的对象属性

在winform开发中,利用PropertyGrid控件来显示、编辑对象的属性是非常方便的。

本文以一个公司类为例来介绍在Visual Studio(C#)中用PropertyGrid显示和编辑集合的属性,其中,公司对象中包含员工对象的集合。

1 添加员工类

添加员工类,有姓名、性别和头发颜色属性

        public class Employee{[Category("基本属性")][DisplayName("员工姓名")][Description("员工姓名")]public string Name { get; set; }[Category("基本属性")][DisplayName("姓别")][Description("姓别")]public EnumGender Gender { get; set; }}public enum EnumGender{男=0,女,};

2 添加员工类集合

 public class EmployeeCollection : CollectionBase{public Employee this[int index]{get { return (Employee)List[index]; }}public void Add(Employee emp){List.Add(emp);}public void Remove(Employee emp){List.Remove(emp);}}

3 添加员工集合编辑器类

    public class EmployeeCollectionEditor : CollectionEditor{public EmployeeCollectionEditor(Type type): base(type){}protected override string GetDisplayText(object value){Employee item = new Employee();item = (Employee)value;return base.GetDisplayText(string.Format("{0}", item.Name));}}

GetDisplayText方法获取在员工编辑器左侧那栏显示的字符

4 添加公司类

 public class Company{[Category("基本属性")][DisplayName("公司名称")][Description("公司名称")]public string Name { get; set; }[Category("基本属性")][DisplayName("公司地址")][Description("公司地址")]public string Address { get; set; }private EmployeeCollection emCollection = new EmployeeCollection();[Editor(typeof(EmployeeCollectionEditor), typeof(System.Drawing.Design.UITypeEditor))][Category("公司的员工")][DisplayName("公司员工")][Description("员工是公司的财富")]public EmployeeCollection Employees{get { return emCollection; }set { emCollection = value; }}

5 在PropertyGrid中显示对象属性

在窗体上添加一个PropertyGrid控件,在窗体的Form1_Load事件中调用以下代码。

        private void LoadProperty(){Employee a = new Employee();a.Name = "樊大姐";a.Gender = EnumGender.女;a.HairColor = Color.Yellow;Employee b = new Employee();b.Name = "张小蛋";b.Gender = EnumGender.男;b.HairColor = Color.Black;Company company = new Company();company.Employees.Add(a);company.Employees.Add(b);company.Address = "北京";company.Name = "100度";this.propertyGrid2.SelectedObject = company;}

6 获取编辑后的属性

        private void button1_Click(object sender, EventArgs e){Company company = (Company)this.propertyGrid2.SelectedObject;MessageBox.Show("公司名称是: " + company.Name);}

7 效果

(1)公司对象属性

(2)员工集合

(3)获取修改后的对象属性


资源下载地址PropertyGrid控件显示和编辑集合

在winform项目中用PropertyGrid显示、编辑集合的属性相关推荐

  1. 循序渐进开发WinForm项目(5)--Excel数据的导入导出操作

    随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...

  2. winform项目——计算器程序01:标准窗体设计

    这个计算器程序是我在看Visual Studio的标准文档时发现的,在文档介绍windows窗体设计的后面有一个入门演练,看的时候吓我一跳,因为整个过程介绍的太详细了,从没见过哪一篇教程介绍的如此细致 ...

  3. iOS 项目中用到的一些开源库和第三方组件

    iOS 项目中用到的一些 iOS 开源库和第三方组件 分享一下我目前所在公司 iOS 项目中用到的一些 iOS 开源库和第三方组件, 感谢开源, 减少了我们的劳动力, 节约了我们大量的时间, 让我们有 ...

  4. iOS 9应用开发教程之显示编辑文本标签文本框

    iOS 9应用开发教程之显示编辑文本标签文本框 ios9显示.编辑文本 在iOS,经常会看到一些文本的显示.文字就是这些不会说话的设备的嘴巴.通过这些文字,可以很清楚的指定这些设备要表达的信息.本节将 ...

  5. Winform界面中主从表编辑界面的快速处理

    在Winform开发中,我们往往除了常规的单表信息录入外,有时候设计到多个主从表的数据显示.编辑等界面,单表的信息一般就是控件和对象实体一一对应,然后调用API保存即可,主从表就需要另外特殊处理,本随 ...

  6. yaml for java_细数Java项目中用过的配置文件(YAML篇)

    灵魂拷问:YAML,在项目中用过没?它与 properties 文件啥区别? 目前 SpringBoot.SpringCloud.Docker 等各大项目.各大组件,在使用过程中几乎都能看到 YAML ...

  7. winform窗体中嵌入显示Excel文件

    最近做的一个项目是C/S结构的,由于客户需要,需要在Winform页面上直接显示Excel文件.对于个人来说,我一直都是在从事B/S结构的项目开发,对于Asp.net很熟悉.但是c/s结构项目的开发还 ...

  8. c# Winform 开发分屏显示应用程序

    c# Winform 开发分屏显示应用程序 原文 http://blog.csdn.net/soft2buy/article/details/7082668 分屏显示即可把一台主机内运行的多个程序分别 ...

  9. 将 C# .NET ( Core Framework ) WPF Winform 项目打包成单个 exe 可执行文件

    对于一个项目来说,如果能够把软件打包成单个 exe 可执行文件,无需安装,下载后直接打开即可使用,就可以极大地方便用户使用,从而增加用户使用你的产品的意愿.同时,依托于 .NET 的原生优势,一般大小 ...

最新文章

  1. linux内核 机器码,u-boot与Linux内核机器码问题
  2. Android性能优化——腾讯、字节、阿里、百度、网易等互联网公司项目实战+案例分析(附PDF)
  3. 计算机等级考试2018改革,2018全国计算机等级考试调整方案公布,这些科目取消了!...
  4. Win7实用技巧之五库功能妙用
  5. 从CES 2017看今年智能汽车发展趋势之一:车联网有望率先实现
  6. java stream 多个filter_如何在Java Stream上应用多个过滤器?
  7. 更换ssh通信证书,ssh更改公钥和密钥,以保证服务器安全
  8. Linux的LCD硬件实现原理和FrameBuffer简介
  9. P3372 【模板】线段树 1 区间查询与区间修改
  10. 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,
  11. 文本相似度计算-度量方法
  12. 时间控件-Jedate
  13. 对接阿里云天气,获取天气预报数据
  14. 《使用Nsis打包安装程序》
  15. 聚类之详解FCM算法原理及应用
  16. PS 使用画笔修复工具去除文字
  17. 我对硬盘MBR、DBR、BPB、FAT和FDT的理解
  18. python reset_index()_python 问题 reset_index(drop=True
  19. 03 学生免费注册Pycharm专业版
  20. MediaPipe人体关键点检测复现和未解决问题

热门文章

  1. Java 计算矩形周长和面积
  2. 装机必备(五)---Win10 + Ubuntu16.04双系统
  3. 美妙感觉,超乎言表,21款奔驰S450升级4D大柏林,主动氛围灯
  4. online域名价值_.online域名
  5. 服务器开关接线位置,你要找的家庭电路控制电路实物接线图、开关控制电路都在这里了!...
  6. Oracle删除数据的三种方式
  7. java内存分析工具
  8. Python轮子打包whl文件
  9. Padavan老毛子固件:17CE插件集成
  10. 1月13日 :大饼上涨暂时告一段落,中途休息中