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【一定在设计器中修改】
==========================================================================================================================