Share via


將程式碼加入使用者控制項

更新:2007 年 11 月

在這個課程中,您將學習如何將程式碼加入至使用者控制項 (User Control),以便顯示完整名稱並公開 (Expose) 新屬性。

與標準控制項一樣,使用者控制項也具有屬性、方法和事件。身為開發人員的您,將會撰寫程式碼來處理控制項的事件,而且將會決定哪些屬性要公開給控制項的使用者。

處理使用者控制項中的事件

為了讓您的使用者控制項更有用,您就必須撰寫某些程式碼來處理控制項的事件。基本上,撰寫使用者控制項的事件處理程序和撰寫表單或控制項的事件處理程序並無不同。

在這個範例中,您將撰寫一個事件程序,以便使用 TextChanged 事件處理常式,在您輸入時,將 FullName 標籤 (Label) 更新為 FirstName、MiddleName 和 LastName 方塊的內容。

試試看!

若要將程式碼加入至使用者控制項

  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 程序。如果您要公開被收納之控制項 (Contained Control) 的屬性,就不需要宣告私用變數以儲存值,因為控制項的屬性會為您儲存。

目前而言,沒有任何方法可擷取輸入 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 導覽