使用过 Microsoft Visual Basic 或 Microsoft Visual Studio .NET的朋友,一定使用过属性浏览器来浏览、查看或编辑一个或多个对象的属性。.NET 框架 PropertyGrid 控件是 Visual Studio .NET 属性浏览器的核心。PropertyGrid 控件显示对象或类型的属性,并主要通过使用反射(在运行时提供类型信息的技术)来检索项目的属性。PropertyGrid控件包含以下部分:一般属性、可展开属性、属性类别、属性说明和属性编辑器等。

  下面,我在我上一篇博客《Winform中DockPanel(引用WeifenLuo.WinFormsUI.Docking.dll组件)的使用》的基础上以代码的形式介绍PropertyGrid控件的使用。

  首先,定义一个PropertyGrid控件,并将其添加到DockPanelRight窗体

//为DockPanelLeft窗体添加PropertyGrid控件
propertyGrid = new PropertyGrid();
dockPanelSideRight.Controls.Add(propertyGrid);
InitPropertyGrid();private void InitPropertyGrid()
{propertyGrid.Location = new Point(0, 0);//propertyGrid.Anchor = AnchorStyles.Left;propertyGrid.Dock = DockStyle.Fill;
}

  其次,添加一个属性类UserProperty,并自定义属性,属性类UserProperty代码如下:

class UserProperty
{private string _AppName;private string _AppPath;private Point _Location;// = new Point(0, 0);private Size _Size = new Size(0, 0);private Color _BackColor;private Color _ForeColor;private Font _Font;private String _Text;[CategoryAttribute("常规"), DescriptionAttribute("应用程序名称"), ReadOnlyAttribute(true)]public string AppName{get{return _AppName;}set{_AppName = value;}}[CategoryAttribute("常规"), DescriptionAttribute("应用程序路径"), ReadOnlyAttribute(true)]public string AppPath{get{return _AppPath;}set{_AppPath = value;}}[CategoryAttribute("布局"), DescriptionAttribute("位置"), ReadOnlyAttribute(false)]public Point Location{get{return _Location;}set{_Location = value;}}[CategoryAttribute("布局"), DescriptionAttribute("尺寸"), ReadOnlyAttribute(false)]public Size Size{get{return _Size;}set{_Size = value;}}[CategoryAttribute("外观"), DescriptionAttribute("背景色"), ReadOnlyAttribute(false)]public Color BackColor{get{return _BackColor;}set{_BackColor = value;}}[CategoryAttribute("外观"), DescriptionAttribute("前景色"), ReadOnlyAttribute(false)]public Color ForeColor{get{return _ForeColor;}set{_ForeColor = value;}}[CategoryAttribute("外观"), DescriptionAttribute("文本")]public String Text{get{return _Text;}set{_Text = value;}}[CategoryAttribute("外观"), DescriptionAttribute("字体")]public Font Font{get{return _Font;}set{_Font = value;}}
}

  最后,实例化UserProperty类,并将其设定为propertyGrid的SelectedObject属性

//设置PropertyGrid控件的值,自定义属性
propertyUser = new UserProperty();
propertyGrid.SelectedObject = propertyUser;
InitPropertyUser();  private void InitPropertyUser()
{propertyUser.AppName = this.Text;propertyUser.Size = this.ClientSize;propertyUser.Location = this.Location;
}

  运行效果如下所示:

  

  要更改某些属性的显示方式,可以对这些属性应用不同的特性。特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。如下所示:

  • DescriptionAttribute      设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
  • CategoryAttribute       设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给杂项类别。
  • BrowsableAttribute       表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
  • ReadOnlyAttribute        表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有 get 和 set 访问函数的公共属性在网格中是可以编辑的。
  • DefaultValueAttribute    表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
  • DefaultPropertyAttribute 表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。

转载于:https://www.cnblogs.com/gaohongchen01/p/4801715.html

WinForm窗体PropertyGrid控件的使用相关推荐

  1. WinForm窗体PropertyGrid控件使用

    PropertyGrid控件是一个很全能的winform属性设置控件,可以将button,lab,text等控件的设置属性全部暴露出来.我这里简单介绍该控件的基本使用方法. 首先我这里定义了一个该控件 ...

  2. winform之propertyGrid控件简单使用方法

    winform之propertyGrid控件简单使用方法 (一) winform之propertyGrid控件简单使用方法 常用的Attribute [CategoryAttribute(" ...

  3. C# winform窗体 ComboBox控件

    赋值: 第一种方法: 控件名称为:cmbXb cmbXb.Items.Add("男");     cmbXb.Items.Add("女");     cmbXb ...

  4. WinForm窗体错误控件

    2019独角兽企业重金招聘Python工程师标准>>> System.Windows.Forms.ErrorProvider 转载于:https://my.oschina.net/p ...

  5. Winform中怎样跨窗体获取另一窗体的控件对象

    场景 Winform中实现跨窗体获取ZedGraph的ZedGraphControl控件对象: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/de ...

  6. C# Winform的panel控件添加背景图片后窗体闪烁问题解决办法

    C# Winform的panel控件添加背景图片后窗体闪烁问题解决办法 参考文章: (1)C# Winform的panel控件添加背景图片后窗体闪烁问题解决办法 (2)https://www.cnbl ...

  7. C# winform中一个类中如何调用另一个窗体的控件或方法

    转载地址:http://blog.csdn.net/ichenqingyun/article/details/52622340 一种是创建窗体对象的方式,通过对象调用控件或方法 例如: Form1 f ...

  8. Winform PropertyGrid控件

    简介: 使用PropertyGrid控件展示和更改数据. 使用: 1.设置只读可以使用ReadOnly属性. public class Student{[CategoryAttribute(" ...

  9. [转载]C# PropertyGrid控件应用心得

    最近碰到关于PropertyGrid控件,以前没有使用过,在网上找了一篇不错的文章,转来分享一下!建议查看原文章! 原文链接:http://blog.csdn.net/luyifeiniu/artic ...

最新文章

  1. java获取apk启动activity_[RK3399] android7.1 设置开机启动apk
  2. 在SCSS文件中导入常规CSS文件?
  3. 统计substr在母串中出现次数/删除字符串中所有空格
  4. 13.配置 influxDB 鉴权及 HTTP API 写数据的方法
  5. aspx练习备忘录#想锤自己两拳#1
  6. 个人对持续集成的理解和实践
  7. Asp.net就业课之Ado.net第一次课
  8. 完全相同的4个小矩形如图所示放置_短线投资,遇到“矩形突破”,斩钉截铁满仓干!...
  9. 霍兰德SC型如何选专业?霍兰德职业兴趣测试
  10. DP动态规划思想讲解
  11. word转PDF,导航窗格输出目录
  12. 计算机还原默认的配置,每次开电脑bios会恢复默认设置怎么办实测解决
  13. 中国十大芯片企业排名
  14. 2019 11月 月末总结
  15. sparc处理器开发工具_SPARC处理器启动代码的分析与编程
  16. PHP获取钉钉审批,PHP获取钉钉考勤信息源代码
  17. 喜报 | 强强联手,这件大事终于有着落了
  18. 【WebService笔记01】使用JWS实现WebService接口的发布和调用
  19. [ 习题 ] 句子简化题 细节题 排除题
  20. JAVA实验3:Java-MySQL实现银行转账系统

热门文章

  1. java axis webservice_Axis Webservice框架使用案例
  2. 大一高数下册笔记整理_初中化学期中重难点解读,复习不用愁啦,建议抄笔记...
  3. 深度学习之卷积神经网络(7)池化层
  4. 【算法竞赛学习】学术前沿趋势-论文代码统计
  5. 目标检测的图像特征提取—Haar特征
  6. 【Clion-Ubuntu-dlib】运行一个dlib案例(一)(如何在clion编译器中配置CMakeLists)
  7. Opencv3编程入门学习笔记(三)之访问图像像素的三种方法
  8. iOS7(+) 图像资源Images Assets使用
  9. 征信逾期了,5年后能自动消除吗?
  10. 网络技术等级考试知识点