C# 2008 高级可自定义 PropertyGrid 控件






4.58/5 (17投票s)
这个用户控件类似于标准的 Microsoft .NET 2.0 PropertyGrid 控件,但具有几个附加功能
引言
这个属性网格控件是在 Visual Studio C# 2008 中开发的。这个用户控件类似于标准的 Microsoft .NET 2.0 PropertyGrid
控件,但具有几个附加功能
- 在运行时获取/设置任何属性项(例如,更改属性的帮助文本)
- 新的属性项 (
Date
和Time
,Date
,Time
,File
,Directory
,ProgressBar
, ...) - 多语言支持
- 图像预览
- 日期日历
- 数值区间自动验证
- 可定制的布尔类型(是/否,真/假,...)
- 数值的可定制工程单位
- 使用 .NET 标准对话框,文本标题,新按钮(显示文本,应用),...
这个控件在运行时是完全可定制的。属性项可以随时添加和更改。
背景
Microsoft .NET 2.0 标准 Property Grid 控件的主要问题是在运行时不容易控制。例如,使用此控件可以更改运行时语言,或者更改通常使用标准控件的只读属性。
Using the Code
运行示例项目
- 从 ZIP 文件中提取所有文件到一个文件夹
- 运行 Visual Studio C# 2008 并选择命令“文件”>“打开项目”
- 选择文件“\Test\Test_mbrPropertyGrid\Test_mbrPropertyGrid.sln”
- 选择命令“生成”>“重新生成解决方案”
- 按 [F5] 键盘按钮运行程序
构建你的新测试项目
- 运行 Visual Studio C# 2008 并创建一个新项目(标准 Windows 窗体应用程序)
- 添加对 .NET DLL "mbrPropertyGrid.dll" 的引用
- 在工具箱窗口中右键单击并选择命令“选择项...”
- 选择浏览按钮并选择 .NET DLL "mbrPropertyGrid.dll"
- 从工具箱中拖放新的
PropertyGrid
图标到你的项目窗体,以将控件添加到你的项目 - 设置控件属性以自定义它
- 编写代码以添加/管理属性项
要从逻辑上对各种项目对象进行分组,首先,添加一个类别项
mbrPropertyGrid.PropertyItemCategory catItem;
catItem = new mbrPropertyGrid.PropertyItemCategory("Main Category");
PropertyGrid1.CategoryAdd("CatMain", catItem);
要将属性项添加到类别,请使用 .ItemAdd
方法,如下面的示例所示
mbrPropertyGrid.PropertyItemInt32 intItem;
intItem = new mbrPropertyGrid.PropertyItemInt32("Line02 - Age (Int32)", 0);
intItem.SetValidationRange(0, 120, 1);
intItem.SetHelpCaptionText("Age", "Tell me your age (valid range : 0..120)");
PropertyGrid1.ItemAdd("CatMain", "MyAge", intItem);
mbrPropertyGrid.PropertyItemString strItem;
strItem = new mbrPropertyGrid.PropertyItemString
("Line01 - Name (String)", "Jak", "Jak Smith");
strItem.HelpCaption = "Name";
strItem.HelpText = "Tell me your name...";
PropertyGrid1.ItemAdd("CatMain", "YourName", strItem);
要禁用属性项,请将该项的属性 .Enabled
设置为 false
,如下面的示例所示
strItem = new mbrPropertyGrid.PropertyItemString
("Line03 - Job (String)", "A software developer");
strItem.HelpText = "Tell me about your job";
strItem.Enabled = false;
PropertyGrid1.ItemAdd("CatMain", "K03", strItem);
当你完成将项目对象添加到强制完全控件重绘时,请运行 .RefreshControl(true)
方法,如下面的代码所示
// Full control repaint
PropertyGrid1.RefreshControl(true);
快速屏幕截图控件预览。 请注意,标准对话框将以操作系统相同的语言显示。
关注点
要在运行时更改语言,只需更改属性项的以下属性:Text
, HelpCaption
, HelpText
(和 Description
用于目录项).
历史
- 版本 1.0.0.0 - 28/08/2008:这是第一个版本。 有一些问题需要解决。 例如,在
.Text
属性的视频刷新上存在已知的错误。 我建议,目前,通过设置.TextVisible = false;
来禁用Text
属性视图
关于我
我的名字是 Massimiliano Brugnerotto,我是一名意大利 C# 软件开发人员。 我相信开源软件是一种有用的资源,通过本文,我将为这个网站做出贡献,这个网站在许多场合为我提供了有趣的开发解决方案。