詳述:使用具名值加入屬性
更新:2007 年 11 月
在本課程中,您將學習如何將含有值清單的屬性加入至使用者控制項中。
具名值
到目前為止,您加入至使用者控制項的屬性都會採用字串值,但屬性可以有許多不同的型別。有時候,您會想要提供預先設定值的清單,以便從中選擇,例如您在先前課程中設定之 PictureBox 控制項的 SizeMode 屬性。
例如,假設您想要建立 NamesControl 的屬性,以便可以選擇 FullName 標籤 (Label) 顯示名稱的方式。您就會需要一份可從中選擇的值清單,這些值包括:名字優先、姓氏優先、僅名字和姓氏等等。
在 Visual Basic 中,您可以建立內含所需值的「列舉型別」。「列舉型別」其實就是「編號清單」。Visual Basic 會為您儲存編號,以便您可以根據名稱參考值。您可以使用 Enum 關鍵字宣告列舉型別,如下列範例所示。
Public Enum Display
FirstMiddleLast
FirstLast
LastFirstMiddle
LastFirst
End Enum
一旦您建立列舉型別後,就可以像任何其他資料型別一樣使用它。若要加入顯示值清單的屬性,請先將相同資料型別的變數宣告為 Enum,然後再宣告相同資料型別的屬性。在設計階段,列舉型別中包含的值清單將會顯示在 [屬性] 視窗內。
試試看!
若要加入顯示值清單的屬性
開啟您在上一個課程中所建立的 NamesUserControl 專案。如果您並未儲存該專案,必須先回到上一個課程:將程式碼加入使用者控制項,並完成該課程中的程序。
在 [方案總管] 中,選取 [NamesControl.vb],然後按一下 [檢視] 功能表上的 [程式碼]。
在 [程式碼編輯器] 中,加入下列程式碼,以建立列舉型別。
Public Enum Display FirstMiddleLast FirstLast LastFirstMiddle LastFirst End Enum
加入下列程式碼,以加入新的屬性。
Private DisplayStyleList As Display Property DisplayStyle() As Display Get Return DisplayStyleList End Get Set(ByVal value As Display) DisplayStyleList = value End Set End Property
刪除 [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
請按 F5 執行程式。在三個文字方塊中,分別輸入名字、姓氏和中間名。
在 [使用者控制項測試容器] 中,捲動至 [屬性] 方格的底部,然後選取 [DisplayStyle] 屬性。選取不同的值,然後變更其中一個文字方塊中的文字,並查看它會如何影響標籤。
按一下 [檔案] 功能表上的 [全部儲存],儲存您的工作。
後續步驟
在本課程中,您學會如何使用列舉型別來建立含有值清單的屬性。在下一個課程中,您會學習如何將使用者控制項放在表單上,以便進行測試。
下一個課程:測試使用者控制項