向用户控件添加代码

更新:2007 年 11 月

在本课中,您将学习如何向用户控件中添加代码以显示全名并公开新属性。

和标准控件一样,用户控件也包含属性、方法和事件。作为开发人员,您需要编写代码来处理控件的事件并决定对控件用户公开哪些属性。

处理用户控件中的事件

要使您的用户控件有用,您需要编写一些代码来处理控件的事件。为用户控件编写事件处理过程与为窗体或控件编写事件处理过程一样。

在本例中,您将编写一个事件过程,它通过使用 TextChanged 事件处理程序,根据您键入到 FirstName、MiddleName 和 LastName 框中的内容来更新 FullName 标签。

试一试!

向用户控件添加代码

  1. 打开在上一课中创建的 NamesUserControl 项目。如果您未保存该项目,则必须先返回上一课 了解用户控件设计器,并完成该课中的步骤。

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

  3. 在代码编辑器中,为 FirstName_TextChanged 事件处理程序添加以下代码。

    Private Sub FirstName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FirstName.TextChanged, MiddleName.TextChanged, LastName.TextChanged
        ' Display the contents of the three text boxes in the label.
        FullName.Text = FirstName.Text & " " & MiddleName.Text & " " & LastName.Text
    End Sub
    
  4. 按 F5 运行程序。将打开“用户控件测试容器”并显示用户控件。

  5. 在三个文本框中分别输入您的名、中间名和姓——随着您输入这些信息,您的名字将显示在 FullName 标签中。

如果您查看上面输入的代码,您会注意到:声明中的 Handles 子句处理所有三个 TextBox 控件的 TextChanged 事件。无论您首先键入的是哪个文本框,FullName 标签都会根据您所键入的内容进行更新。

公开用户控件中的属性

在设计时和运行时,标准控件的属性允许您设置和检索控件的值。您也想确保用户控件属性可用,以便在设计时您可以在“属性”窗口中设置它们,并在代码中引用它们。

公开用户控件中的属性和公开类中的属性非常相似,两者间的主要区别是您也可以公开包含在用户控件中的控件的属性。与类一样,您声明一个属性并将代码添加到 Get 和 Set 过程。如果您要公开某个被包含的控件的属性,您不需要声明一个私有变量来存储值,因为该控件的属性就可以存储该值。

现在的情况是,没有任何方法可以检索已输入到 FirstName、MiddleName 和 LastName 控件中的文本或 FullName 标签的值。您必须将它们的值作为属性公开以使控件有用。由于您不想让 FullName 标签的值在您的代码之外被更改,所以您要将它作为只读属性公开。

试一试!

添加属性

  1. 在代码编辑器中,添加以下代码以将 FirstName、MiddleName 和 LastName 的值作为属性公开。

    Property FirstNameText() As String
        Get
            Return FirstName.Text
        End Get
        Set(ByVal value As String)
            FirstName.Text = value
        End Set
    End Property
    Property MiddleNameText() As String
        Get
            Return MiddleName.Text
        End Get
        Set(ByVal value As String)
            MiddleName.Text = value
        End Set
    End Property
    Property LastNameText() As String
        Get
            Return LastName.Text
        End Get
        Set(ByVal value As String)
            LastName.Text = value
        End Set
    End Property 
    
  2. 添加以下代码以将 FullName 标签的值作为只读属性公开。

    ReadOnly Property FullNameText() As String
        Get
            Return FullName.Text
        End Get
    End Property
    
  3. 按 F5 运行程序。

  4. 在“用户控件测试容器”中,滚动到“属性”网格的底部并选择“FirstNameText”属性。输入您的名字,然后选择“FullNameText”属性——“FirstName”文本框应显示您的名字,而“FullNameText”属性应与之匹配。

    尝试更改“属性”网格和控件本身的其他一些属性,以查看它们是如何相关的。这就是您的控件的用户在设计时将体验到的。

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

后续步骤

在本课中,您学习了如何处理用户控件中的事件以及如何公开它的一些属性。您可以在 详细了解:添加具有命名值的属性 中了解有关属性的更多信息,或者您可以继续进行下一课,学习如何使用自己创建的控件。

下一课:测试用户控件

请参见

任务

向用户控件添加控件

其他资源

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

使用对象编程:使用类

Visual Basic 指导教程