C# PropertyGrid运行时动态显示或隐藏属性


一、解决方案

 

扩展2个属性

C# 全选
    public class StringAttribute : Attribute { }
    public class NumericAttribute : Attribute { }

 

模型

 

C# 全选
    public class GoodsItem
    {
        [StringAttribute]
        public string isid { get; set; }

        [StringAttribute]
        public string CustomerName { get; set; }

        [StringAttribute]
        public string ProductName { get; set; }

        [StringAttribute]
        public string GoodsNo { get; set; }

        [NumericAttribute]
        public int Qty { get; set; }

        [NumericAttribute]
        public decimal Price { get; set; }

        [NumericAttribute]
        public decimal Amount { get; set; }

    }

 

Test源码

 

C# 全选
        private void Form4_Load(object sender, EventArgs e)
        {
            propertyGrid1.SelectedObject = DemoData.GetGoodsList().FirstOrDefault();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            //显示所有属性
            propertyGrid1.BrowsableAttributes = null;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //显示字符串类型的属性
            //PropertyGrid.BrowsableAttributes是用来设置显示的属性
            propertyGrid1.BrowsableAttributes = new AttributeCollection(new StringAttribute());
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //显示数字类型的属性
            propertyGrid1.BrowsableAttributes = new AttributeCollection(new NumericAttribute());
        }

 

二、Demo

显示对象所有属性值

图片

 

仅显示字符类型的属性

 

图片

 

仅显示数字类型的属性

 

图片

 

 

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
评论列表

发表评论

评论内容
昵称:
关联文章

C# PropertyGrid运行动态显示隐藏属性
C# 获取设置PropertyGrid组件列宽度(分隔条宽度)
解决组件被遮挡的问题(表格的滚动条不显示隐藏
C# FastReport.NET 运行汉化界面
运行动态设计FastReport.Net报表另一种处理方式
C#.Net组件开发 - 设计使用自定义属性编辑器持久化对象
C#.NET 定义动态对象dynamic以及属性和方法
禁用隐藏工具栏上的功能按钮
[原创]C#一键隐藏QQ/MSN,显示/隐藏系统托盘图标,获取托盘图标
运行程序加载数据库报错:已存在同名的数据库,无法打开UNC目录
C# PropertyGrid组件基本使用
C# Dev GridView表格使用RepositoryItemPictureEdit显示图标图片
C#数组,多维数组,动态数组
C#启动程序检测运行多个实例
标签:C#.Net组件开发 - 属性窗体内显示自定义名称
C#.NET扩展的动态对象支持动态属性和方法以及Json格式与对象互转
FastReport.NET 隐藏显示 打印进度条
FastReport.NET隐藏打印对话框和隐藏打印进度条(Progress)|C/S框架网
VS.NET 窗体继承 - 按钮组件隐藏位置不正确解决方案
动态对象ExpandoObject实现动态函数调用