[C#.NET][VB.NET][Winform][User Control] 自订控件的显示窗口属性 /User Control of Properties(一)

[C#.NET][VB.NET][Winform][User Control] 自订控件的显示窗口属性 /User Control of Properties(一)


我们都知道控件都是利用属性触发相关功能,我们在写自订控件时一定会用到属性,但控件的属性怎么列出来呢?

2010-6-15 上午 11-07-00

System.ComponentModel 命名空间 提供相当多的类供程序员使用,定义控件的显示方式。

在此将把我用过的类做一个笔记

实值类型 的回传属性

C#
//一般属性
private string _AppVersion = "1.0";
public string AppVersion
{
    get { return _AppVersion; }
    set { _AppVersion = value; }
} 

VB
'一般属性
Private _AppVersion As String = "1.0"
Public Property AppVersion() As String
    Get
        Return _AppVersion
    End Get
    Set(ByVal value As String)
        _AppVersion = value
    End Set
End Property
 
C#
//自动属性,C#2008后支持
public bool IsConnected { get; set; }

VB
'自动属性,VB2010支持

Property IsConnected As Boolean 

属性显示与否

BrowsableAttribute 类 = 指定属性或事件是否应该在 [属性] 窗口中显示

C#[Browsable(false)]
public bool IsConnected { get; set; }

VB<[Browsable](False)>
Property IsConnected As Boolean

2010-6-15 下午 01-06-19

把 IsConnected 藏起来

属性分类

CategoryAttribute 类 = 指定分类的名称,该分类会在将 PropertyGrid 控件设定为 [分类] 模式时,以群组方式来显示属性或事件。

C#[Category("自订属性")]
public bool IsConnected { get; set; }
VB<[Category]("自订属性")>
Property IsConnected As Boolean

2010-6-15 下午 01-05-08

属性说明

DescriptionAttribute 类 = 指定属性或事件的描述。

C#[Description("连线与否")]
public bool IsConnected { get; set; }

VB<[Description]("连线与否")>
Property IsConnected As Boolean

2010-6-15 下午 01-04-08

自订控件图示

请参考 [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; }
}

VBPrivate _AppVersion As String = "1.0"

Public Property AppVersion() As String
    Get
        Return _AppVersion
    End Get
    Set(ByVal value As String)
        _AppVersion = value
    End Set
End Property

2010-6-15 下午 01-15-48

属性只读

ReadOnlyAttribute 类 = 指定这个属性 (Attribute) 系结的属性 (Property) 在设计阶段是只读的或是读取/写入的。这个类无法被继承。

就算属性可以Set也是只读

C#[ReadOnly(true)]
public bool IsConnected { get; set; }
VB
Property IsConnected As Boolean
2010-6-15 下午 12-45-06

指定类遇设属性

DefaultPropertyAttribute 类 = 指定组件的默认属性。

载入控件时第一个要呈现的属性

C#[DefaultPropertyAttribute("IsConnected")]
public partial class CSUserControl1 : UserControl
{
}
VB<[DefaultPropertyAttribute]("IsConnected")>
Public Class VBUserControl1    
End Class

下拉式属性

首先建立一个枚举

C#public enum StatusEnum:int
{
    Normal,Advanced
}
VBPublic Enum StatusEnum As Integer
    Normal
    Advanced
End Enum

回传枚举

C#[Category("自订属性")]
public StatusEnum Status { get; set; }

VB<[Category]("自订属性")>
Public Property Status As StatusEnum
2010-6-15 下午 01-46-06

范例下载

UserControls.zip

若有谬误,烦请告知,新手发帖请多包涵

2010~2017 C# 第四季