WinForm应用程序中PropertyGrid的使用

摘要:
调用时,将新类的实例分配给PropertyGrid的SelectedObject属性。此接口定义PropertyChangedEventHandler类型的PropertyChanged事件,在定义类时需要实现该事件。调用时,使用类的实例注册执行PropertyChanged事件的事件的XXMethod方法。当属性更改时,将执行此方法。

1、概述

在WinForm应用程序中,PropertyGrid提供用于浏览、编辑对象的属性字段的UI。您也可以把它看成一个容器,因为它继承了ContainerControl类,因此在编辑输入的时候,可能是系统控件(如字体、颜色对话框)或者用户控件(如下面举例的用于Enum类型输入的用户控件)。

2、简单使用

PropertyGrid的使用极其简单,从工具栏拖动PropertyGrid到一个窗体上,然后新建包含属性定义的类。调用时,new一个类的实例赋值给PropertyGrid的SelectedObject属性即可。

3、属性更改后的通知

属性更改后要通知客户端,可以给属性所属的类实现INotifyPropertyChanged接口。该接口定义了一个类型为PropertyChangedEventHandler的PropertyChanged事件,定义类的时候需要实现该接口。调用的时候,使用类的实例为PropertyChanged事件注册执行事件的方法XXMethod,当属性变化时,此方法即执行。当然,前提是在属性定义的Set索引器里,要触发PropertyChanged事件,把变更的属性的属性名当参数传给客户,客户根据属性名和类的实例,即可使用反射技术获得更新后的属性。

4、源码

http://files.cnblogs.com/gmth/PropertyGridTest.rar

免责声明:文章转载自《WinForm应用程序中PropertyGrid的使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇netstat -st输出解析(二)nslookup,dig,host的用法详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

winform设计一个登录界面和修改密码的界面-自动切换窗体(问题[已解] 望一起讨论)(技术改变世界-cnblog)

http://www.cnblogs.com/IAmBetter/archive/2012/01/14/2322156.html winform设计一个登录界面和修改密码的界面-自动切换窗体(问题[已解] 望一起讨论)(技术改变世界-cnblog)需求 登录界面: 1.要求 密码 文本可以显示和隐藏 字符 password属性 2.显示输入按钮button...

winform中文本框,软键盘跟随

private void textBox1_Click(object sender, EventArgs e) { //Control.MousePosition Point p = System.Windows.Forms.Cursor.Position;...

winform中如何在TextBox中只能输入数字(可以带小数点)

可以采用像web表单验证的方式,利用textbox的TextChanged事件,每当textbox内容变化时,调用正则表达式的方法验证,用一个label在text后面提示输入错误,具体代码如下: private void textBox1_TextChanged(objectsender, EventArgs e) {...

winform 中 MessageBox 用法大全

(转自:http://blog.csdn.net/xuenzhen123/article/details/4808005)  MessageBox.Show()共有21中重载方法。现将其常见用法总结如下:   1.MessageBox.Show(“Hello~~~~”); 最简单的,只显示提示信息。 2.MessageBox.Show(“There ar...

winform 显示时钟效果

1、winform里拖拽控件 timer 2、为timer控件 绑定事件 3、程序代码如下 1 usingSystem; 2 usingSystem.Drawing; 3 usingSystem.Windows.Forms; 4 usingSystem.Drawing.Drawing2D; 5 6 namespaceVH_CriticalRepor...

c# Winform GridControl 给列自动生成快捷操作按钮

话不多说直接上代码: using DevExpress.XtraEditors.Controls; using DevExpress.XtraEditors.Repository; using DevExpress.XtraGrid; using DevExpress.XtraGrid.Columns; using DevExpress.XtraGrid....