C#_PropertyGrid控件相关

1.PropertyGrid 折叠/展开所有分类示例代码

   propertyGrid4.CollapseAllGridItems();//折叠全部
   propertyGrid4.ExpandAllGridItems();//展开全部
==========================================================================================================================
2.PropertyGrid 常用属性设置

            propertyGrid1.Dock = DockStyle.Fill;
            propertyGrid1.ToolbarVisible = false;//隐藏顶部工具栏

            propertyGrid1.PropertySort =3 ;//属性排序

Alphabetical 1

属性按字母表顺序排列。

Categorized 2

属性根据其在组中的类别显示。 类别由属性本身定义。

CategorizedAlphabetical 3

属性根据其在组中的类别显示。 该组中的属性按字母顺序进一步排序。 类别由属性本身定义。

NoSort 0

属性按其在 TypeDescriptor 中检索的顺序显示。


==========================================================================================================================
3.PropertyGrid 属性类函数示例代码

using System.ComponentModel;

普通“double”类型代码:
            [Category("构造信息")]
            [DisplayName("盖梁宽度")]
            [Description("单位(m)")]
            public double kd { get; set; }

普通“bool”类型代码:
            [Category("F基础形式")]
            [DisplayName("是否换填")]
            [Browsable(false)]
            [Description("扩大基础下是否采用换填,是 True,否 Flase ||如果为桩基,此项无意义")]
            public bool JCsfht { get; set; }

钢筋直径选择器 代码:(注意配合下面钢筋直径附属代码)
    private string MyDKhjzj;
        [TypeConverter(typeof(ZjFileNameConverter))] //转换为Converter类型
        [Category("普通钢筋参数")]
        [DisplayName("N2挡块横筋直径")]
        [Description("选择相应钢筋直径,(HPB300为光圆钢筋)其余均为HRB400")]
        public string DKhjzj
        {
            get { return MyDKhjzj; }
            set { MyDKhjzj = value; }
        }

混凝土型号选择器 代码:(注意配合下面混凝土型号附属代码)
    private string MyDKhntxh;
        [TypeConverter(typeof(HntFileNameConverter))] //转换为Converter类型
        [Category("其他控制参数")]
        [DisplayName("挡块混凝土型号")]
        [Description("选择相应混凝土标号")]
        public string DKhntxh
        {
            get { return MyDKhntxh; }
            set { MyDKhntxh = value; }
        }

“钢筋直径下拉菜单”附属代码:
    public class ZjFileNameConverter : StringConverter //创建一个从类型转换器类,在StringConverter 中继承
        {
            public override bool GetStandardValuesSupported(ITypeDescriptorContext context)//覆盖 GetStandardValuesSupported 方法并返回 true ,表示此对象支持可以从列表中选取的一组标准值
            {
                return true;
            }
            public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)//覆盖 GetStandardValues 方法并返回填充了标准值的 StandardValuesCollection  即 自己想要的下拉菜单list
            {
                return new StandardValuesCollection(new string[] { "08(HPB300)", "10(HPB300)", "10", "12", "14", "16", "18", "20", "22", "25", "28", "32" });
            }

            public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)//决定用户不可以自己输入下拉菜单用的选项(true-不可以,false-可以)
            {
                return true;
            }
        }

“混凝土型号下拉菜单”附属代码:
    public class HntFileNameConverter : StringConverter //创建一个从类型转换器类,在StringConverter 中继承
        {
            public override bool GetStandardValuesSupported(ITypeDescriptorContext context)//覆盖 GetStandardValuesSupported 方法并返回 true ,表示此对象支持可以从列表中选取的一组标准值
            {
                return true;
            }
            public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)//覆盖 GetStandardValues 方法并返回填充了标准值的 StandardValuesCollection  即 自己想要的下拉菜单list
            {
                return new StandardValuesCollection(new string[] { "C20混凝土", "C25混凝土", "C30混凝土", "C35混凝土", "C40混凝土", "C50混凝土" });
            }

            public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)//决定用户不可以自己输入下拉菜单用的选项(true-不可以,false-可以)
            {
                return true;
            }
        }//混凝土型号下拉菜单相关设置及创建汇总

==========================================================================================================================
4.PropertyGrid 属性类别排序(网址:https://www.debugease.com/csharp/781756.html)

          使用/r或者 /t 可以根据category自定义排序 ,如:
          [CategoryAttribute("/t/t/t巷道名称"), DescriptionAttribute("巷道名称:可以自定义")]//只读ReadOnly(true)
          [CategoryAttribute("/t/t阻力"), DescriptionAttribute("阻力:总阻力、调节阻力")]
          [CategoryAttribute("/t巷道物理属性"), DescriptionAttribute("巷道断面面积:单位(平方米)")]
          [CategoryAttribute("风量"), DescriptionAttribute("风量")]
每个类别里面的属性,按添加顺序排列:将PropertySort属性在设计器中修改为Categorized【一定在设计器中修改】
==========================================================================================================================


posted @ 2021-11-20 11:38  总统双  阅读(863)  评论(0编辑  收藏  举报