System.ComponentModel 命名空間 提供相當多的類別供程式設計師使用,定義控制項的顯示方式。
在此將把我用過的類別做一個筆記
c# 一般屬性
private string _AppVersion ="1.0";
public string AppVersion
{
get { return _AppVersion; }
set { _AppVersion = value; }
}
C#//自動屬性,C#2008後支援
public bool IsConnected { get; set; }
屬性顯示與否
BrowsableAttribute 類別 = 指定屬性或事件是否應該在 [屬性] 視窗中顯示
C#
[Browsable(false)]
public bool IsConnected { get; set; }

把 IsConnected 藏起來
屬性分類
CategoryAttribute 類別 = 指定分類的名稱,該分類會在將 PropertyGrid 控制項設定為 [分類] 模式時,以群組方式來顯示屬性或事件。
C#
[Category("自訂屬性")]
public bool IsConnected { get; set; }

屬性說明
DescriptionAttribute 類別 = 指定屬性或事件的描述。
C#
[Description("連線與否")]
public bool IsConnected { get; set; }
自訂控制項圖示
請參考 [C#.NET][VB.NET] 自訂控制項工具箱圖示 - ToolboxBitmap Attribute
屬性預設值
DefaultValueAttribute 類別 = 指定屬性的預設值。
C#
private string _AppVersion="1.0";
[Browsable(true),Category("自訂屬性"),DefaultValue("1.0")]
public string AppVersion
{
get { return _AppVersion; }
set { _AppVersion = value; }
}
屬性唯讀
ReadOnlyAttribute 類別 = 指定這個屬性 (Attribute) 繫結的屬性 (Property) 在設計階段是唯讀的或是讀取/寫入的。這個類別無法被繼承。
就算屬性可以Set也是唯讀
C#
[ReadOnly(true)]
public bool IsConnected { get; set; }
指定類別遇設屬性
DefaultPropertyAttribute 類別 = 指定元件的預設屬性。
載入控制項時第一個要呈現的屬性
C#
[DefaultPropertyAttribute("IsConnected")]
public partial class CSUserControl1 : UserControl
{
}
下拉式屬性
首先建立一個列舉
C#
public enum StatusEnum:int
{
Normal,Advanced
}
C#
[Category("自訂屬性")]
public StatusEnum Status { get; set; }
本文介紹了如何在 C# 中使用 System.ComponentModel 命名空間中的類別來定義控制項的屬性,包括如何顯示或隱藏屬性、指定屬性分類、添加屬性說明等。此外,還提供了自訂控制項圖示和屬性預設值的實現方法。
3450

被折叠的 条评论
为什么被折叠?



