2024年3月23日发(作者:)
.
PropertyGrid 控件简介
如果您使用过 Microsoft® Visual Basic® 或 Microsoft Visual Studio .NET,那么您一定
使用过属性浏览器来浏览、查看和编辑一个或多个对象的属性。.NET 框架 PropertyGrid 控件
是 Visual Studio .NET 属性浏览器的核心。PropertyGrid 控件显示对象或类型的属性,并主
要通过使用反射来检索项目的属性。(反射是在运行时提供类型信息的技术。)
下面的屏幕快照显示了 PropertyGrid 在窗体上的外观。
图 1:窗体上的 PropertyGrid
PropertyGrid 包含以下部分:
属性
可展开属性
属性类别标题
属性说明
属性编辑器
属性选项卡
命令窗格(显示控件设计器提供的设计器操作)
创建 PropertyGrid 控件
要使用 Visual Studio .NET 创建 PropertyGrid 控件,需要将该控件添加到工具箱中,因为
默认情况下并不包含该控件。在 Tools (工具)菜单中,选择 Customize Toolbox (自定义
工具箱)。在对话框中选择 Framework Components (框架组件)选项卡,然后选择 PropertyGrid 。
如果您从命令行编译代码,请使用 /reference 选项并指定 。
以下代码显示了如何创建 PropertyGrid 控件并将其添加到窗体中。
1. using System;
2. using g;
3. using entModel;
4. using ;
5. using ization;
6. public class OptionsDialog :
7. {
8. private tyGrid OptionsPropertyGrid;
9. public OptionsDialog()
10. {
11. OptionsPropertyGrid = new PropertyGrid();
12. = new Size(300, 250);
13. (OptionsPropertyGrid);
14. = "选项对话框";
15. }
16. [STAThread]
17. static void Main()
.
.
18. {
19. (new OptionsDialog());
20. }
21. }
何处使用 PropertyGrid 控件
在应用程序中的很多地方,您都可以使用户与 PropertyGrid 进行交互,从而获得更丰富的编
辑体验。例如,某个应用程序包含多个用户可以设置的“设置”或选项,其中一些可能十分复杂。
您可以使用单选按钮、组合框或文本框来表示这些选项。但本文将逐步介绍如何使用
PropertyGrid 控件创建选项窗口来设置应用程序选项。上面所创建的
OptionsDialog
窗体
即是选项窗口的开始。现在,我们创建一个名为
AppSettings
的类,其中包含映射到应用程
序设置的所有属性。如果创建单独的类而不使用多个分散的变量,设置将更便于管理和维护。
1. public class AppSettings{
2. private bool saveOnClose = true;
3. private string greetingText = "欢迎使用应用程序!";
4. private int itemsInMRU = 4;
5. private int maxRepeatRate = 10;
6. private bool settingsChanged = false;
7. private string appVersion = "1.0";
8.
9. public bool SaveOnClose
10. {
11. get { return saveOnClose; }
12. set { saveOnClose = value;}
13. }
14. public string GreetingText
15. {
16. get { return greetingText; }
17. set { greetingText = value; }
18. }
19. public int MaxRepeatRate
20. {
21. get { return maxRepeatRate; }
22. set { maxRepeatRate = value; }
23. }
24. public int ItemsInMRUList
25. {
26. get { return itemsInMRU; }
27. set { itemsInMRU = value; }
28. }
29. public bool SettingsChanged
30. {
31. get { return settingsChanged; }
32. set { settingsChanged = value; }
.


发布评论