winform之propertyGrid控件简单使用方法 (一)
winform之propertyGrid控件简单使用方法
常用的Attribute
[CategoryAttribute(“设置”)]
指定当属性或事件显示在被一个设置为按分类顺序模式的 System.Windows.Forms.PropertyGrid 控件中时,用于给属性或事件分组的类别的名称。(不设置该Attribute,属性将会分组到杂项)
[DisplayNameAttribute(“Name1”)]
指定属性名称。(不设置该Attribute时使用访问器名称替代)
[ReadOnlyAttribute(“true”)]
属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有 get 和 set 访问函数的公共属性在网格中是可以编辑的。
[DescriptionAttribute(“以毫秒表示的文本重复率。”)]
设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
[BrowsableAttribute(true)]
表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中
[DefaultPropertyAttribute(“PKG”)]
表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
自定义属性类与PropertyGrid控件进行绑定
[DefaultPropertyAttribute("PKG")]
public class AppSettings
{
private bool saveOnClose = true;
[CategoryAttribute("文档设置"), DefaultValueAttribute(false)]
public bool SaveOnClose
{
get { return saveOnClose; }
set { saveOnClose = value; }
}
private int maxRepeatRate = 10;
[CategoryAttribute("设置"), DescriptionAttribute("以毫秒表示的文本重复率。"), DefaultValueAttribute(10)]
public int MaxRepeatRate
{
get { return maxRepeatRate; }
set { maxRepeatRate = value; }
}
private string greetingText = "欢迎使用应用程序!";
[CategoryAttribute("设置"),DisplayNameAttribute("Name1"),ReadOnlyAttribute(true), DefaultValueAttribute("欢迎使用应用程序!")]
public string GreetingText
{
get { return greetingText; }
set { greetingText = value; }
}
private string appVersion = "1.0";
[CategoryAttribute("版本"), DefaultValueAttribute("1.0"), ReadOnlyAttribute(true)]
public string AppVersion
{
get { return appVersion; }
set { appVersion = value; }
}
PKGenerator pkg = PKGenerator.AutoGenerate;
[CategoryAttribute("这是枚举"), DisplayNameAttribute("我是PKG")]
public PKGenerator PKG
{
get { return pkg; }
set { pkg = value; }
}
}
//属性类与propertyGrid进行绑定! AppSettings:自定义属性类
private void Form1_Load(object sender, EventArgs e)
{
propertyGrid1.SelectedObject = new AppSettings();
}
说明区域&工具栏
System.Windows.Forms.PropertyGrid propertyGrid1 = new System.Windows.Forms.PropertyGrid();
propertyGrid1.HelpBackColor = Color.Red; //设置说明区域的背景颜色
propertyGrid1.HelpBorderColor = Color.Blue; //设置说明区域边框颜色
propertyGrid1.HelpForeColor = Color.Green; //设置说明区域描述文字颜色
propertyGrid1.HelpVisible = true; //设置说明区域是否可见
propertyGrid1.ToolbarVisible = true; //设置工具栏是否可见
注意事项
1、自定属性类中所有的属性都应该有get 和set方法,如果没有get方法属性将不在PropertyGrid中不显示,没有set方法则为只读属性在PropertyGrid中无法设置该属性的值。