C#-PropertyGrid所有用法.pdf

上传人:w**** 文档编号:72820184 上传时间:2023-02-13 格式:PDF 页数:36 大小:3.01MB
返回 下载 相关 举报
C#-PropertyGrid所有用法.pdf_第1页
第1页 / 共36页
C#-PropertyGrid所有用法.pdf_第2页
第2页 / 共36页
点击查看更多>>
资源描述

《C#-PropertyGrid所有用法.pdf》由会员分享,可在线阅读,更多相关《C#-PropertyGrid所有用法.pdf(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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 表示属性是否为只读。此特性可用于禁止在网格中编

26、辑属性。默认情表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有况下,带有 getget 和和 setset 访问函数的公共属性在网格中是可以编辑的。可以将此特性应用于访问函数的公共属性在网格中是可以编辑的。可以将此特性应用于AppVersionAppVersion属性。属性。DefaultValueAttributeDefaultValueAttribute 表示属性的默认值。如果希望为属性提供默认值,然后确定该属表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。性值是否与默认值相同,则可使用此特性。

27、可以将此特性应用于所有属性。DefaultPropertyAttributeDefaultPropertyAttribute 表示类的默认属性。在网格中选择某个类时,将首先突出显表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。可以将此特性应用于示该类的默认属性。可以将此特性应用于AppSettingsAppSettings类。类。现在,我们将其中的一些特性应用于现在,我们将其中的一些特性应用于AppSettingsAppSettings类,以更改属性在类,以更改属性在 PropertyGridPropertyGrid 中中的显示方式。的显示方式。1.1.DefaultPr

28、opertyAttribute(SaveOnClose)DefaultPropertyAttribute(SaveOnClose)2.2.public class AppSettingspublic class AppSettings3.3.private bool saveOnClose=true;private bool saveOnClose=true;4.4.private string greetingText=private string greetingText=欢迎使用应用程序!欢迎使用应用程序!;5.5.private int maxRepeatRate=10;private

29、 int maxRepeatRate=10;6.6.private int itemsInMRU=4;private int itemsInMRU=4;7.7.private bool settingsChanged=false;private bool settingsChanged=false;8.8.private string appVersion=1.0;private string appVersion=1.0;9.9.CategoryAttribute(CategoryAttribute(文档设置文档设置),),10.10.DefaultValueAttribute(true)D

30、efaultValueAttribute(true)11.11.public bool SaveOnClosepublic bool SaveOnClose12.12.13.13.get return saveOnClose;get return saveOnClose;14.14.set saveOnClose=value;set saveOnClose=value;15.15.16.16.CategoryAttribute(CategoryAttribute(全局设置全局设置),),17.17.ReadOnlyAttribute(true),ReadOnlyAttribute(true),

31、18.18.DefaultValueAttribute(DefaultValueAttribute(欢迎使用应用程序!欢迎使用应用程序!)19.19.public string GreetingTextpublic string GreetingText20.20.21.21.get return greetingText;get return greetingText;22.22.set greetingText=value;set greetingText=value;23.23.24.24.CategoryAttribute(CategoryAttribute(全局设置全局设置),),2

32、5.25.DefaultValueAttribute(4)DefaultValueAttribute(4)26.26.public int ItemsInMRUListpublic int ItemsInMRUList27.27.28.28.get return itemsInMRU;get return itemsInMRU;29.29.set itemsInMRU=value;set itemsInMRU=value;30.30.31.31.DescriptionAttribute(DescriptionAttribute(以毫秒表示的文本重复率。以毫秒表示的文本重复率。),),32.32

33、.CategoryAttribute(CategoryAttribute(全局设置全局设置),),33.33.DefaultValueAttribute(10)DefaultValueAttribute(10)34.34.public int MaxRepeatRatepublic int MaxRepeatRate35.35.36.36.get return maxRepeatRate;get return maxRepeatRate;37.37.set maxRepeatRate=value;set maxRepeatRate=value;38.38.39.39.BrowsableAttr

34、ibute(false),BrowsableAttribute(false),40.40.DefaultValueAttribute(false)DefaultValueAttribute(false)41.41.public bool SettingsChangedpublic bool SettingsChanged42.42.43.43.get return settingsChanged;get return settingsChanged;44.44.set settingsChanged=value;set settingsChanged=value;45.45.46.46.Cat

35、egoryAttribute(CategoryAttribute(版本版本),),47.47.DefaultValueAttribute(1.0),DefaultValueAttribute(1.0),48.48.ReadOnlyAttribute(true)ReadOnlyAttribute(true)49.49.public string AppVersionpublic string AppVersion50.50.51.51.get return appVersion;get return appVersion;52.52.set appVersion=value;set appVer

36、sion=value;53.53.54.54.将这些特性应用于将这些特性应用于AppSettingsAppSettings类后,类后,编译并运行该应用程序。编译并运行该应用程序。下面的屏幕快照显示了应用下面的屏幕快照显示了应用程序的外观。程序的外观。图图 3 3:PropertyGridPropertyGrid 中显示的带有类别和默认值的属性中显示的带有类别和默认值的属性使用此版本的选项窗口后,您会注意到以下几点:使用此版本的选项窗口后,您会注意到以下几点:显示窗口时,将首先突出显示显示窗口时,将首先突出显示SaveOnCloseSaveOnClose属性。属性。选中选中MaxRepeatRa

37、teMaxRepeatRate属性时,说明帮助窗格中将显示属性时,说明帮助窗格中将显示“以毫秒表示的文本重复率以毫秒表示的文本重复率”。SaveOnCloseSaveOnClose属性显示在属性显示在“文档设置文档设置”类别下。其他属性分别显示在类别下。其他属性分别显示在“全局设置全局设置”和和“版本版本”类类别下。别下。SettingsChangedSettingsChanged属性将不再显示。属性将不再显示。AppVersionAppVersion属性为只读。只读属性以灰显文本显示。属性为只读。只读属性以灰显文本显示。如果如果SaveOnCloseSaveOnClose属性包含的值不是属性

38、包含的值不是 truetrue,该值将以粗体显示。,该值将以粗体显示。PropertyGridPropertyGrid 使用使用粗体文本表示包含非默认值的属性。粗体文本表示包含非默认值的属性。显示复杂属性显示复杂属性到现在为止,选项窗口显示的都是简单的类型,如整数、布尔值和字符串。那么,如何显示更到现在为止,选项窗口显示的都是简单的类型,如整数、布尔值和字符串。那么,如何显示更复杂的类型呢?如果应用程序需要跟踪窗口大小、文档字体或工具栏颜色等信息,该如何处理复杂的类型呢?如果应用程序需要跟踪窗口大小、文档字体或工具栏颜色等信息,该如何处理呢?呢?.NET.NET 框架提供的某些数据类型具有特殊

39、的显示功能,能使这些类型在框架提供的某些数据类型具有特殊的显示功能,能使这些类型在 PropertyGridPropertyGrid中更具可用性。中更具可用性。对所提供类型的支持对所提供类型的支持首先,请更新首先,请更新AppSettingsAppSettings类,为窗口大小(类,为窗口大小(SizeSize 类型)、窗口字体(类型)、窗口字体(FontFont 类型)和工类型)和工具栏颜色(具栏颜色(ColorColor 类型)添加新属性。类型)添加新属性。1.1.DefaultPropertyAttribute(SaveOnClose)DefaultPropertyAttribute(S

40、aveOnClose)2.2.public class AppSettingspublic class AppSettings3.3.private bool saveOnClose=true;private bool saveOnClose=true;4.4.private string greetingText=private string greetingText=欢迎使用应用程序!欢迎使用应用程序!;5.5.private int maxRepeatRate=10;private int maxRepeatRate=10;6.6.private int itemsInMRU=4;pri

41、vate int itemsInMRU=4;7.7.private bool settingsChanged=false;private bool settingsChanged=false;8.8.private string appVersion=1.0;private string appVersion=1.0;9.9.10.10.private Size windowSize=new Size(100,100);private Size windowSize=new Size(100,100);11.11.private Font windowFont=new Font(private

42、 Font windowFont=new Font(宋体宋体,9,FontStyle.Regular);,9,FontStyle.Regular);12.12.private Color toolbarColor=SystemColors.Control;private Color toolbarColor=SystemColors.Control;13.13.CategoryAttribute(CategoryAttribute(文档设置文档设置),),14.14.DefaultValueAttribute(true)DefaultValueAttribute(true)15.15.publ

43、ic bool SaveOnClosepublic bool SaveOnClose16.16.17.17.get return saveOnClose;get return saveOnClose;18.18.set saveOnClose=value;set saveOnClose=value;19.19.20.20.CategoryAttribute(CategoryAttribute(文档设置文档设置)21.21.public Size WindowSizepublic Size WindowSize22.22.23.23.get return windowSize;get retur

44、n windowSize;24.24.set windowSize=value;set windowSize=value;25.25.26.26.CategoryAttribute(CategoryAttribute(文档设置文档设置)27.27.public Font WindowFontpublic Font WindowFont28.28.29.29.get return windowFont;get return windowFont;30.30.set windowFont=value;set windowFont=value;31.31.32.32.CategoryAttribut

45、e(CategoryAttribute(全局设置全局设置)33.33.public Color ToolbarColorpublic Color ToolbarColor34.34.35.35.get return toolbarColor;get return toolbarColor;36.36.set toolbarColor=value;set toolbarColor=value;37.37.38.38.CategoryAttribute(CategoryAttribute(全局设置全局设置),),39.39.ReadOnlyAttribute(true),ReadOnlyAttri

46、bute(true),40.40.DefaultValueAttribute(DefaultValueAttribute(欢迎使用应用程序!欢迎使用应用程序!)41.41.public string GreetingTextpublic string GreetingText42.42.43.43.get return greetingText;get return greetingText;44.44.set greetingText=value;set greetingText=value;45.45.46.46.CategoryAttribute(CategoryAttribute(全局

47、设置全局设置),),47.47.DefaultValueAttribute(4)DefaultValueAttribute(4)48.48.public int ItemsInMRUListpublic int ItemsInMRUList49.49.50.50.get return itemsInMRU;get return itemsInMRU;51.51.set itemsInMRU=value;set itemsInMRU=value;52.52.53.53.DescriptionAttribute(DescriptionAttribute(以毫秒表示的文本重复率。以毫秒表示的文本重复

48、率。),),54.54.CategoryAttribute(CategoryAttribute(全局设置全局设置),),55.55.DefaultValueAttribute(10)DefaultValueAttribute(10)56.56.public int MaxRepeatRatepublic int MaxRepeatRate57.57.58.58.get return maxRepeatRate;get return maxRepeatRate;59.59.set maxRepeatRate=value;set maxRepeatRate=value;60.60.61.61.Br

49、owsableAttribute(false),BrowsableAttribute(false),62.62.DefaultValueAttribute(false)DefaultValueAttribute(false)63.63.public bool SettingsChangedpublic bool SettingsChanged64.64.65.65.get return settingsChanged;get return settingsChanged;66.66.set settingsChanged=value;set settingsChanged=value;67.6

50、7.68.68.CategoryAttribute(CategoryAttribute(版本版本),),69.69.DefaultValueAttribute(1.0),DefaultValueAttribute(1.0),70.70.ReadOnlyAttribute(true)ReadOnlyAttribute(true)71.71.public string AppVersionpublic string AppVersion72.72.73.73.get return appVersion;get return appVersion;74.74.set appVersion=value

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁