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中无法设置该属性的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值