没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|其它|编辑:郝浩|2005-03-22 11:00:00.000|阅读 1479 次
概述:
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
添加域列表和简单的下拉列表属性支持
对于基于 Enum 类型返回枚举的属性,PropertyGrid 会自动在下拉列表中显示枚举值。EnumConverter
也提供了这一功能。对于自己的属性,您可能希望为用户提供一个有效值列表(有时也称为选取列表或域列表),而其类型并不是基于 Enum。如果域值在运行时之前未知,或者值可以更改,则属于这种情况。
修改选项窗口,提供一个用户可从中选择的默认文件名的域列表。您已经将 DefaultFileName 属性添加到 AppSettings 类。下一步是在
PropertyGrid 中显示属性的下拉列表,以提供域列表。
提供简单的下拉列表属性支持
' Visual Basic Public Class FileNameConverter Inherits StringConverter End Class //C# public class FileNameConverter: StringConverter { } |
' Visual Basic Public Overloads Overrides Function GetStandardValuesSupported( _ ByVal context As ITypeDescriptorContext) As Boolean Return True End Function //C# public override bool GetStandardValuesSupported( ITypeDescriptorContext context) { return true; } |
' Visual Basic Public Overloads Overrides Function GetStandardValues( _ ByVal context As ITypeDescriptorContext) _ As StandardValuesCollection Return New StandardValuesCollection(New String() {"新文件", _ "文件1", _ "文档1"}) End Function //C# public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) { return new StandardValuesCollection(new string[]{"新文件", "文件1", "文档1"}); } |
' Visual Basic Public Overloads Overrides Function GetStandardValuesExclusive( _ ByVal context As ITypeDescriptorContext) As Boolean Return False End Function //C# public override bool GetStandardValuesExclusive( ITypeDescriptorContext context) { return false; } |
' Visual Basic ' 应用到 DefaultFileName 属性的 TypeConverter 特性。 <TypeConverter(GetType(FileNameConverter)), _ CategoryAttribute("文档设置")> _ Public Property DefaultFileName() As String Get Return _defaultFileName End Get Set(ByVal Value As String) _defaultFileName = Value End Set End Property //C# // 应用到 DefaultFileName 属性的 TypeConverter 特性。 [TypeConverter(typeof(FileNameConverter)), CategoryAttribute("文档设置")] public string DefaultFileName { get{ return defaultFileName; } set{ defaultFileName = value; } } |
再次编译并运行选项窗口应用程序。下面的屏幕快照显示了选项窗口目前的外观。请注意 DefaultFileName 属性的外观。
图 7:在 PropertyGrid 中显示下拉域列表
为属性提供自定义 UI
如上所述,.NET 框架类型使用 TypeConverter 和 UITypeEditor 类(以及其他类)来提供 PropertyGrid
编辑支持。有关如何使用 TypeConverter,请参阅对自定义类型的支持一节;您也可以使用 UITypeEditor 类来自定义 PropertyGrid。
您可以在 PropertyGrid 中提供小图形表示和属性值,类似于为 Image 和 Color 类提供的内容。要在自定义中执行此操作,请从
UITypeEditor 继承,覆盖 GetPaintValueSupported 并返回 true。然后,覆盖 UITypeEditor.PaintValue
方法,并在自己的方法中使用 PaintValueEventArgs.Graphics 参数绘制图形。最后,将 Editor 特性应用到使用
UITypeEditor 类的类或属性。
下面的屏幕快照显示了结果外观。
图 8:在 PropertyGrid 中显示属性的自定义图形
您也可以提供自己的下拉列表控件,这与 Control.Dock 属性用来为用户提供靠接选择的控件类似。要执行此操作,请从 UITypeEditor 继承,覆盖
GetEditStyle,然后返回一个 UITypeEditorEditStyle 枚举值,例如 DropDown。您的自定义下拉列表控件必须从 Control
或 Control 的派生类(例如 UserControl)继承而来。然后,覆盖 UITypeEditor.EditValue 方法。使用
IServiceProvider 参数调用 IServiceProvider.GetService 方法,以获取一个
IWindowsFormsEditorService 实例。最后,调用 IWindowsFormsEditorService.DropDownControl
方法来显示您的自定义下拉列表控件。请记住将 Editor 特性应用到使用 UITypeEditor 类的类或属性中。
下面的屏幕快照显示了结果外观。
图 9:在 PropertyGrid 中显示属性的自定义下拉列表控件
除了使用 TypeEditor 和 UITypeEditor 类外,还可以自定义 PropertyGrid 以显示其他属性选项卡。属性选项卡从
PropertyTab 类继承而来。如果您使用过 Microsoft Visual C#™ .NET 中的属性浏览器,那么就可能看到过自定义的
PropertyTab。Events 选项卡(带有闪电图形的按钮)就是一个自定义的 PropertyTab。下面的屏幕快照显示了自定义 PropertyTab
的另一个示例。可以使用 PropertyTab 编辑按钮的边界点,以创建自定义的按钮形状。
图 10:在 PropertyGrid 中显示自定义选项卡
有关使用 UITypeEditor 类自定义 PropertyGrid 的详细信息,以及上述自定义用户界面代码示例,请参阅 Shawn Burke 的文章
Make Your Components Really RAD with Visual Studio .NET Property Browser(英文)。
小结
.NET 框架提供的 ProperyGrid 控件具有丰富的编辑功能,您可以使用这些编辑功能来改善您的用户界面。PropertyGrid
的自定义非常简单,您可以在任何应用程序中使用这一控件。此外,由于 Visual Studio .NET 属性浏览器是建立在 PropertyGrid
的基础之上的,因此您可以使用这些技术提供更丰富的设计时体验。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号