日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WinForm窗体PropertyGrid控件的使用

發布時間:2023/12/13 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WinForm窗体PropertyGrid控件的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  使用過 Microsoft Visual Basic 或 Microsoft Visual Studio .NET的朋友,一定使用過屬性瀏覽器來瀏覽、查看或編輯一個或多個對象的屬性。.NET 框架 PropertyGrid 控件是 Visual Studio .NET 屬性瀏覽器的核心。PropertyGrid 控件顯示對象或類型的屬性,并主要通過使用反射(在運行時提供類型信息的技術)來檢索項目的屬性。PropertyGrid控件包含以下部分:一般屬性、可展開屬性、屬性類別、屬性說明和屬性編輯器等。

  下面,我在我上一篇博客《Winform中DockPanel(引用WeifenLuo.WinFormsUI.Docking.dll組件)的使用》的基礎上以代碼的形式介紹PropertyGrid控件的使用。

  首先,定義一個PropertyGrid控件,并將其添加到DockPanelRight窗體

//為DockPanelLeft窗體添加PropertyGrid控件 propertyGrid = new PropertyGrid(); dockPanelSideRight.Controls.Add(propertyGrid); InitPropertyGrid();private void InitPropertyGrid() {propertyGrid.Location = new Point(0, 0);//propertyGrid.Anchor = AnchorStyles.Left;propertyGrid.Dock = DockStyle.Fill; }

  其次,添加一個屬性類UserProperty,并自定義屬性,屬性類UserProperty代碼如下:

class UserProperty {private string _AppName;private string _AppPath;private Point _Location;// = new Point(0, 0);private Size _Size = new Size(0, 0);private Color _BackColor;private Color _ForeColor;private Font _Font;private String _Text;[CategoryAttribute("常規"), DescriptionAttribute("應用程序名稱"), ReadOnlyAttribute(true)]public string AppName{get{return _AppName;}set{_AppName = value;}}[CategoryAttribute("常規"), DescriptionAttribute("應用程序路徑"), ReadOnlyAttribute(true)]public string AppPath{get{return _AppPath;}set{_AppPath = value;}}[CategoryAttribute("布局"), DescriptionAttribute("位置"), ReadOnlyAttribute(false)]public Point Location{get{return _Location;}set{_Location = value;}}[CategoryAttribute("布局"), DescriptionAttribute("尺寸"), ReadOnlyAttribute(false)]public Size Size{get{return _Size;}set{_Size = value;}}[CategoryAttribute("外觀"), DescriptionAttribute("背景色"), ReadOnlyAttribute(false)]public Color BackColor{get{return _BackColor;}set{_BackColor = value;}}[CategoryAttribute("外觀"), DescriptionAttribute("前景色"), ReadOnlyAttribute(false)]public Color ForeColor{get{return _ForeColor;}set{_ForeColor = value;}}[CategoryAttribute("外觀"), DescriptionAttribute("文本")]public String Text{get{return _Text;}set{_Text = value;}}[CategoryAttribute("外觀"), DescriptionAttribute("字體")]public Font Font{get{return _Font;}set{_Font = value;}} }

  最后,實例化UserProperty類,并將其設定為propertyGrid的SelectedObject屬性

//設置PropertyGrid控件的值,自定義屬性 propertyUser = new UserProperty(); propertyGrid.SelectedObject = propertyUser; InitPropertyUser(); private void InitPropertyUser() {propertyUser.AppName = this.Text;propertyUser.Size = this.ClientSize;propertyUser.Location = this.Location; }

  運行效果如下所示:

  

  要更改某些屬性的顯示方式,可以對這些屬性應用不同的特性。特性是用于為類型、字段、方法和屬性等編程元素添加批注的聲明標記,在運行時可以使用反射對其進行檢索。如下所示:

  • DescriptionAttribute   ? ?設置顯示在屬性下方說明幫助窗格中的屬性文本。這是一種為活動屬性(即具有焦點的屬性)提供幫助文本的有效方法。
  • CategoryAttribute    ? ?設置屬性在網格中所屬的類別。當您需要將屬性按類別名稱分組時,此特性非常有用。如果沒有為屬性指定類別,該屬性將被分配給雜項類別。
  • BrowsableAttribute   ? ? 表示是否在網格中顯示屬性。此特性可用于在網格中隱藏屬性。默認情況下,公共屬性始終顯示在網格中。
  • ReadOnlyAttribute   ? ? ?表示屬性是否為只讀。此特性可用于禁止在網格中編輯屬性。默認情況下,帶有 get 和 set 訪問函數的公共屬性在網格中是可以編輯的。
  • DefaultValueAttribute   ?表示屬性的默認值。如果希望為屬性提供默認值,然后確定該屬性值是否與默認值相同,則可使用此特性。可以將此特性應用于所有屬性。
  • DefaultPropertyAttribute 表示類的默認屬性。在網格中選擇某個類時,將首先突出顯示該類的默認屬性。

轉載于:https://www.cnblogs.com/gaohongchen01/p/4801715.html

總結

以上是生活随笔為你收集整理的WinForm窗体PropertyGrid控件的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。