65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.58/5 (17投票s)

2008年8月29日

CPOL

3分钟阅读

viewsIcon

99657

downloadIcon

6199

这个用户控件类似于标准的 Microsoft .NET 2.0 PropertyGrid 控件,但具有几个附加功能

引言

这个属性网格控件是在 Visual Studio C# 2008 中开发的。这个用户控件类似于标准的 Microsoft .NET 2.0 PropertyGrid 控件,但具有几个附加功能

  • 在运行时获取/设置任何属性项(例如,更改属性的帮助文本)
  • 新的属性项 (DateTime, Date, Time, File, Directory, ProgressBar, ...)
  • 多语言支持
  • 图像预览
  • 日期日历
  • 数值区间自动验证
  • 可定制的布尔类型(是/否,真/假,...)
  • 数值的可定制工程单位
  • 使用 .NET 标准对话框,文本标题,新按钮(显示文本,应用),...

这个控件在运行时是完全可定制的。属性项可以随时添加和更改。

背景

Microsoft .NET 2.0 标准 Property Grid 控件的主要问题是在运行时不容易控制。例如,使用此控件可以更改运行时语言,或者更改通常使用标准控件的只读属性。

Using the Code

运行示例项目

  1. 从 ZIP 文件中提取所有文件到一个文件夹
  2. 运行 Visual Studio C# 2008 并选择命令“文件”>“打开项目”
  3. 选择文件“\Test\Test_mbrPropertyGrid\Test_mbrPropertyGrid.sln
  4. 选择命令“生成”>“重新生成解决方案”
  5. 按 [F5] 键盘按钮运行程序

构建你的新测试项目

  1. 运行 Visual Studio C# 2008 并创建一个新项目(标准 Windows 窗体应用程序)
  2. 添加对 .NET DLL "mbrPropertyGrid.dll" 的引用
  3. 在工具箱窗口中右键单击并选择命令“选择项...”
  4. 选择浏览按钮并选择 .NET DLL "mbrPropertyGrid.dll"
  5. 从工具箱中拖放新的 PropertyGrid 图标到你的项目窗体,以将控件添加到你的项目
  6. 设置控件属性以自定义它
  7. 编写代码以添加/管理属性项

要从逻辑上对各种项目对象进行分组,首先,添加一个类别项

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);

快速屏幕截图控件预览。 请注意,标准对话框将以操作系统相同的语言显示。

mbrPropertygrid_Preview_02.png

mbrPropertygrid_Preview_03.png

mbrPropertygrid_Preview_04.png

mbrPropertygrid_Preview_05.png

mbrPropertygrid_Preview_06.png

mbrPropertygrid_Preview_07.png

mbrPropertygrid_Preview_08.png

mbrPropertygrid_Preview_09.png

mbrPropertygrid_Preview_10.png

mbrPropertygrid_Preview_11.png

mbrPropertygrid_Preview_12.png

mbrPropertygrid_Preview_12.png

mbrPropertygrid_Preview_13.png

关注点

要在运行时更改语言,只需更改属性项的以下属性:Text, HelpCaption, HelpText (和 Description 用于目录项).

历史

  • 版本 1.0.0.0 - 28/08/2008:这是第一个版本。 有一些问题需要解决。 例如,在 .Text 属性的视频刷新上存在已知的错误。 我建议,目前,通过设置 .TextVisible = false; 来禁用 Text 属性视图

关于我

我的名字是 Massimiliano Brugnerotto,我是一名意大利 C# 软件开发人员。 我相信开源软件是一种有用的资源,通过本文,我将为这个网站做出贡献,这个网站在许多场合为我提供了有趣的开发解决方案。

© . All rights reserved.