C#-PropertyGrid所有用法.pdf
《C#-PropertyGrid所有用法.pdf》由会员分享,可在线阅读,更多相关《C#-PropertyGrid所有用法.pdf(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C#-PropertyGridC#-PropertyGrid 所有用法所有用法PropertyGridPropertyGrid 控件简介控件简介如果您使用过如果您使用过 Microsoft Visual BasicMicrosoft Visual Basic 或或 Microsoft Visual Studio.NETMicrosoft Visual Studio.NET,那么,那么您一定使用过属性浏览器来浏览、查看和编辑一个或多个对象的属性。您一定使用过属性浏览器来浏览、查看和编辑一个或多个对象的属性。.NET.NET 框架框架PropertyGridPropertyGrid 控件是控件是
2、Visual Studio.NETVisual Studio.NET 属性浏览器的核心。属性浏览器的核心。PropertyGridPropertyGrid 控件显控件显示对象或类型的属性,并主要通过使用反射来检索项目的属性。(反射是在运行时提供类型信示对象或类型的属性,并主要通过使用反射来检索项目的属性。(反射是在运行时提供类型信息的技术。)息的技术。)下面的屏幕快照显示了下面的屏幕快照显示了 PropertyGridPropertyGrid 在窗体上的外观。在窗体上的外观。图图 1 1:窗体上的:窗体上的 PropertyGridPropertyGridPropertyGridPropert
3、yGrid 包含以下部分:包含以下部分:属性属性可展开属性可展开属性属性类别标题属性类别标题属性说明属性说明属性编辑器属性编辑器属性选项卡属性选项卡命令窗格(显示控件设计器提供的设计器操作)命令窗格(显示控件设计器提供的设计器操作)创建创建 PropertyGridPropertyGrid 控件控件要使用要使用 Visual Studio.NETVisual Studio.NET 创建创建 PropertyGridPropertyGrid 控件,需要将该控件添加到工具箱中,控件,需要将该控件添加到工具箱中,因为默认情况下并不包含该控件。因为默认情况下并不包含该控件。在在 ToolsTools(
4、工具)工具)菜单中,菜单中,选择选择 Customize ToolboxCustomize Toolbox(自自定义工具箱)。在对话框中选择定义工具箱)。在对话框中选择 Framework ComponentsFramework Components(框架组件)选项卡,然后选(框架组件)选项卡,然后选择择 PropertyGridPropertyGrid。如果您从命令行编译代码,请使用如果您从命令行编译代码,请使用/reference/reference 选项并指定选项并指定System.Windows.Forms.dllSystem.Windows.Forms.dll。以下代码显示了如何创建
5、以下代码显示了如何创建 PropertyGridPropertyGrid 控件并将其添加到窗体中。控件并将其添加到窗体中。1.1.using System;using System;2.2.using System.Drawing;using System.Drawing;3.3.using System.ComponentModel;using System.ComponentModel;4.4.using System.Windows.Forms;using System.Windows.Forms;5.5.using System.Globalization;using System.G
6、lobalization;6.6.public class OptionsDialog:System.Windows.Forms.Formpublic class OptionsDialog:System.Windows.Forms.Form7.7.8.8.private System.Windows.Forms.PropertyGrid OptionsPropertyGrid;private System.Windows.Forms.PropertyGrid OptionsPropertyGrid;9.9.public OptionsDialog()public OptionsDialog(
7、)10.10.11.11.OptionsPropertyGrid=new PropertyGrid();OptionsPropertyGrid=new PropertyGrid();12.12.OptionsPropertyGrid.Size=new Size(300,250);OptionsPropertyGrid.Size=new Size(300,250);13.13.this.Controls.Add(OptionsPropertyGrid);this.Controls.Add(OptionsPropertyGrid);14.14.this.Text=this.Text=选项对话框选项
8、对话框;15.15.16.16.STAThreadSTAThread17.17.static void Main()static void Main()18.18.19.19.Application.Run(new OptionsDialog();Application.Run(new OptionsDialog();20.20.21.21.何处使用何处使用 PropertyGridPropertyGrid 控件控件在应用程序中的很多地方,您都可以使用户与在应用程序中的很多地方,您都可以使用户与 PropertyGridPropertyGrid 进行交互,从而获得更丰富的进行交互,从而获得更丰
9、富的编辑体验。例如,某个应用程序包含多个用户可以设置的编辑体验。例如,某个应用程序包含多个用户可以设置的“设置设置”或选项,其中一些可能十分复或选项,其中一些可能十分复杂。您可以使用单选按钮、组合框或文本框来表示这些选项。但本文将逐步介绍如何使用杂。您可以使用单选按钮、组合框或文本框来表示这些选项。但本文将逐步介绍如何使用PropertyGridPropertyGrid 控件创建选项窗口来设置应用程序选项。控件创建选项窗口来设置应用程序选项。上面所创建的上面所创建的OptionsDialogOptionsDialog窗窗体即是选项窗口的开始。现在,我们创建一个名为体即是选项窗口的开始。现在,我
10、们创建一个名为AppSettingsAppSettings的类,其中包含映射到应用的类,其中包含映射到应用程序设置的所有属性。如果创建单独的类而不使用多个分散的变量,设置将更便于管理和维护。程序设置的所有属性。如果创建单独的类而不使用多个分散的变量,设置将更便于管理和维护。1.1.public class AppSettingspublic class AppSettings2.2.private bool saveOnClose=true;private bool saveOnClose=true;3.3.private string greetingText=private string
11、greetingText=欢迎使用应用程序!欢迎使用应用程序!;4.4.private int itemsInMRU=4;private int itemsInMRU=4;5.5.private int maxRepeatRate=10;private int maxRepeatRate=10;6.6.private bool settingsChanged=false;private bool settingsChanged=false;7.7.private string appVersion=1.0;private string appVersion=1.0;8.8.9.9.public
12、 bool SaveOnClosepublic bool SaveOnClose10.10.11.11.get return saveOnClose;get return saveOnClose;12.12.set saveOnClose=value;set saveOnClose=value;13.13.14.14.public string GreetingTextpublic string GreetingText15.15.16.16.get return greetingText;get return greetingText;17.17.set greetingText=value
13、;set greetingText=value;18.18.19.19.public int MaxRepeatRatepublic int MaxRepeatRate20.20.21.21.get return maxRepeatRate;get return maxRepeatRate;22.22.set maxRepeatRate=value;set maxRepeatRate=value;23.23.24.24.public int ItemsInMRUListpublic int ItemsInMRUList25.25.26.26.get return itemsInMRU;get
14、return itemsInMRU;27.27.set itemsInMRU=value;set itemsInMRU=value;28.28.29.29.public bool SettingsChangedpublic bool SettingsChanged30.30.31.31.get return settingsChanged;get return settingsChanged;32.32.set settingsChanged=value;set settingsChanged=value;33.33.34.34.public string AppVersionpublic s
15、tring AppVersion35.35.36.36.get return appVersion;get return appVersion;37.37.set appVersion=value;set appVersion=value;38.38.39.39.选项窗口上的选项窗口上的 PropertyGridPropertyGrid 将使用此类,因此请将类定义添加到应用程序项目中,在添加将使用此类,因此请将类定义添加到应用程序项目中,在添加时可创建新文件或将其添加到现有窗体源代码的下方。时可创建新文件或将其添加到现有窗体源代码的下方。选择对象选择对象要标识要标识 PropertyGridP
16、ropertyGrid 显示的内容,请将显示的内容,请将 PropertyGrid.SelectedObjectPropertyGrid.SelectedObject 属性设置为属性设置为一个对象实例。然后,一个对象实例。然后,PropertyGridPropertyGrid 将完成其余的工作。每次设置将完成其余的工作。每次设置 SelectedObjectSelectedObject 时,时,PropertyGridPropertyGrid 都会刷新显示的属性。都会刷新显示的属性。这提供了一种简单的方法来强制刷新属性,这提供了一种简单的方法来强制刷新属性,或在运行时或在运行时切换对象。您还可
17、以调用切换对象。您还可以调用 PropertyGrid.RefreshPropertyGrid.Refresh 方法来刷新属性。方法来刷新属性。接下来,接下来,您需要更新您需要更新OptionsDialogOptionsDialog构造函数中的代码,构造函数中的代码,以创建一个以创建一个AppSettingsAppSettings对象,对象,并将其设置为并将其设置为 PropertyGrid.SelectedObjectPropertyGrid.SelectedObject 属性的值。属性的值。1.1.public OptionsDialog()public OptionsDialog()2.
18、2.3.3.OptionsPropertyGrid=new PropertyGrid();OptionsPropertyGrid=new PropertyGrid();4.4.OptionsPropertyGrid.Size=new Size(300,250);OptionsPropertyGrid.Size=new Size(300,250);5.5.this.Controls.Add(OptionsPropertyGrid);this.Controls.Add(OptionsPropertyGrid);6.6.this.Text=this.Text=选项对话框选项对话框;7.7./创建创建
19、 AppSettings AppSettings 类并在类并在 PropertyGrid PropertyGrid 中显示该类。中显示该类。8.8.AppSettings appset=new AppSettings();AppSettings appset=new AppSettings();9.9.OptionsPropertyGrid.SelectedObject=appset;OptionsPropertyGrid.SelectedObject=appset;10.10.编译并运行该应用程序。下面的屏幕快照显示了应用程序的外观。编译并运行该应用程序。下面的屏幕快照显示了应用程序的外观。
20、图图 2 2:PropertyGridPropertyGrid 中选定的中选定的 AppSettingsAppSettings 类类自定义自定义 PropertyGridPropertyGrid 控件控件您可以修改您可以修改 PropertyGridPropertyGrid 的某些外观特征以满足自己的需要。可以更改某些属性的显示方的某些外观特征以满足自己的需要。可以更改某些属性的显示方式,甚至选择不显示某些属性。那么,如何对式,甚至选择不显示某些属性。那么,如何对 PropertyGridPropertyGrid 进行自定义呢?进行自定义呢?更改更改 PropertyGridPropertyG
21、rid 的外观特征的外观特征PropertyGridPropertyGrid 的许多外观特征都可以自定义。下面列出了其中的一部分:的许多外观特征都可以自定义。下面列出了其中的一部分:通过通过 HelpBackColorHelpBackColor、HelpForeColorHelpForeColor 和和 HelpVisibleHelpVisible 属性可以更改背景颜色、更改属性可以更改背景颜色、更改字体颜色或隐藏说明窗格。字体颜色或隐藏说明窗格。通过通过 ToolbarVisibleToolbarVisible 属性可以隐藏工具栏,通过属性可以隐藏工具栏,通过 BackColorBackCo
22、lor 属性可以更改工具栏的颜色,属性可以更改工具栏的颜色,通过通过 LargeButtonsLargeButtons 属性可以显示大工具栏按钮。属性可以显示大工具栏按钮。使用使用 PropertySortPropertySort 属性可以按字母顺序对属性进行排序和分类。属性可以按字母顺序对属性进行排序和分类。通过通过 BackColorBackColor 属性可以更改拆分器的颜色。属性可以更改拆分器的颜色。通过通过 LineColorLineColor 属性可以更改网格线和边框。属性可以更改网格线和边框。本示例中的选项窗口不需要工具栏,本示例中的选项窗口不需要工具栏,因此可以将因此可以将 T
23、oolbarVisibleToolbarVisible 设置为设置为 falsefalse。其余属性其余属性均保留默认设置。均保留默认设置。更改属性的显示方式更改属性的显示方式要更改某些属性的显示方式,您可以对这些属性应用不同的特性。特性是用于为类型、字段、要更改某些属性的显示方式,您可以对这些属性应用不同的特性。特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了其中的一部分:了其中的一部分:DescriptionAttribute-Description
24、Attribute-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。可以将此特性应用于属性(即具有焦点的属性)提供帮助文本的有效方法。可以将此特性应用于MaxRepeatRateMaxRepeatRate属性。属性。CategoryAttribute-CategoryAttribute-设置属性在网格中所属的类别。设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,当您需要将属性按类别名称分组时,此此特性非常有用。如果没有为属性指定类别,该属性将被分配给杂项特性非常有用。
25、如果没有为属性指定类别,该属性将被分配给杂项 类别。可以将此特性应用于所类别。可以将此特性应用于所有属性。有属性。BrowsableAttributeBrowsableAttribute 表示是否在网格中显示属性。表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。此特性可用于在网格中隐藏属性。默认默认情况下,公共属性始终显示在网格中。可以将此特性应用于情况下,公共属性始终显示在网格中。可以将此特性应用于SettingsChangedSettingsChanged属性。属性。ReadOnlyAttributeReadOnlyAttribute 表示属性是否为只读。此特性可用于禁止在网格中编
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PropertyGrid 所有 用法
限制150内