详细了解:添加具有命名值的属性

更新:2007 年 11 月

在本课中,您将会学习如何将包含一列值的属性添加到用户控件中。

命名值

到现在为止,您添加到用户控件中的属性均带有字符串值,但属性可以是许多不同的类型。有时,您会希望提供一列预先设置的值以供选择,就像以前课程中设置的 PictureBox 控件的 SizeMode 属性一样。

例如,如果要为 NamesControl 创建可用于选择 FullName 标签显示名称的方式的属性。您将需要一列值供您选择:名在最前、姓在最前、仅显示名和姓等等。

在 Visual Basic 中,可以创建包含所需值的“枚举”。“枚举”只是“编号列表”的一个特别称谓;Visual Basic 会存储编号,以便您可以通过名称来引用相应的值。可以使用 Enum 关键字来声明枚举,如下例所示。

Public Enum Display
    FirstMiddleLast
    FirstLast
    LastFirstMiddle
    LastFirst
End Enum

创建枚举后,可以像使用其他任何数据类型一样使用枚举。若要添加显示一列值的属性,应首先声明一个与 Enum 的数据类型相同的变量,然后再声明一个具有相同数据类型的属性。在设计时,枚举中包含的一列值将显示在“属性”窗口中。

试一试!

添加显示一列值的属性

  1. 打开在上一课中创建的 NamesUserControl 项目。如果您未保存该项目,则必须先返回上一课向用户控件添加代码并完成该课中的步骤。

  2. 在“解决方案资源管理器”中,选择“NamesControl.vb”,再在“视图”菜单上单击“代码”。

  3. 在代码编辑器中,添加以下代码以创建枚举。

    Public Enum Display
        FirstMiddleLast
        FirstLast
        LastFirstMiddle
        LastFirst
    End Enum
    
  4. 添加以下代码以添加新属性。

    Private DisplayStyleList As Display 
    Property DisplayStyle() As Display
        Get
            Return DisplayStyleList
        End Get
        Set(ByVal value As Display)
            DisplayStyleList = value
        End Set
    End Property
    
  5. 删除 FirstName_TextChanged 事件处理程序中的现有代码,然后替换为以下代码。

    Select Case DisplayStyleList
        Case Display.FirstLast
            FullName.Text = FirstName.Text & " " & LastName.Text
        Case Display.FirstMiddleLast
            FullName.Text = FirstName.Text & " " & MiddleName.Text & " " & LastName.Text
        Case Display.LastFirst
            FullName.Text = LastName.Text & ", " & FirstName.Text
        Case Display.LastFirstMiddle
            FullName.Text = LastName.Text & ", " & FirstName.Text & " " & MiddleName.Text
    End Select
    
  6. 按 F5 运行程序。在三个文本框中分别输入您的名、姓和中间名。

  7. 在 UserControl TestContainer 中,滚动到“属性”网格的底部并选择“DisplayStyle”属性。选择一个不同的值,然后更改其中一个文本框中的文本,并查看它是如何影响标签的。

  8. 在“文件”菜单上,单击“全部保存”以保存所做的工作。

后续步骤

在本课中,您学习了如何使用枚举创建具有一列值的属性。在下一课中,您将学习如何通过将用户控件置于窗体上来测试它。

下一课:测试用户控件

请参见

任务

向用户控件添加代码

其他资源

可视对象:创建您的第一个用户控件

使用对象编程:使用类

Visual Basic 指导教程