CollectionEditor集合编辑器使用

本文介绍了在C#中使用PropertyGrid时遇到的集合编辑器问题及解决方案,包括显示属性描述、支持多类型集合编辑和限制集合项数量。通过源码分析和代码示例展示了如何实现这些功能。
摘要由CSDN通过智能技术生成

  最近遇到一个项目需要使用的propertyGrid来让用户自定义属性,在遇到对集合进行操作的的时候遇到几个问题:

    1.在集合编辑器上,属性设计区域下面的没有属性描述区域,导致有的用户无法知道这个属性有啥用,如下图

      

    2.集合编辑器只能指定同一个类型,但有个需求是需要在一个集合里添加基于同一个基类的不同拓展的多个类型

    3.需要限制集合编辑器Items的数量,不能超过指定数量.

 

  先处理第一个问题,老规矩,遇到问题的时候先google下,结果没找到我需要的,只能老老实实去看看源码希望能有点收货,运气还好,反编译了下CollectionEditor,发现其实

是有描述区域的,只是不知道微软咋想的,默认是不显示的,但是可以通过反射使其显示,具体代码直接贴上

 1 public class ExtendCollectionEditor : CollectionEditor
 2     {
 3         public ExtendCollectionEditor(Type type) : base(type)
 4         {
 5         }
 6         protected override CollectionForm CreateCollectionForm()
 7         {
 8             CollectionForm frm = base.CreateCollectionForm();
 9             FieldInfo fileinfo = frm.GetType().GetField("propertyBrowser", BindingFlags.NonPublic | BindingFlags.Instance);
10             if (fileinfo != null)
11             {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值