. Klaus가 올바르다 고해도 ListItem 클래스는 System.Web.UI.WebControls 네임 스페이스의 멤버라고 생각합니다. 따라서 Windows Forms 솔루션에서 사용해서는 안됩니다. 그러나 그 자리에서 사용할 수있는 자신 만의 클래스를 만들 수 있습니다. 이 같은 MyListItem (또는 어떤 이름 선택)라는 간단한 클래스 만들기 : 당신이 당신의 콤보 상자에 항목을 추가 할 때 이제
Public Class MyListItem
Private mText As String
Private mValue As String
Public Sub New(ByVal pText As String, ByVal pValue As String)
mText = pText
mValue = pValue
End Sub
Public ReadOnly Property Text() As String
Get
Return mText
End Get
End Property
Public ReadOnly Property Value() As String
Get
Return mValue
End Get
End Property
Public Overrides Function ToString() As String
Return mText
End Function
End Class
을 당신은 이런 식으로 작업을 수행 할 수 있습니다
myComboBox.Items.Add(New MyListItem("Text to be displayed", "value of the item"))
지금 당신이 당신의 콤보 상자에서 선택한 항목의 값을 검색 할 때 이런 식으로 작업을 수행 할 수 있습니다
Dim oItem As MyListItem = CType(myComboBox.SelectedItem, MyListItem)
MessageBox.Show("The Value of the Item selected is: " & oItem.Value)
여기 열쇠 중 하나는의 ToString 메서드를 오버라이드 (override)한다 수업. ComboBox가 표시되는 텍스트를 가져 오는 곳입니다.
매트이 더욱 유연하게하기 위해 제네릭 사용에 대한 아래 자신의 의견에, 우수한 강조했다. 그래서 나는 그것이 어떻게 생겼는지 궁금해했다.
다음은 새롭게 개선 된 GenericListItem
클래스의 :
Public Class GenericListItem(Of T)
Private mText As String
Private mValue As T
Public Sub New(ByVal pText As String, ByVal pValue As T)
mText = pText
mValue = pValue
End Sub
Public ReadOnly Property Text() As String
Get
Return mText
End Get
End Property
Public ReadOnly Property Value() As T
Get
Return mValue
End Get
End Property
Public Overrides Function ToString() As String
Return mText
End Function
End Class
그리고 여기 당신은 지금 당신의 콤보 상자에 일반 항목을 추가하는 방법입니다. 지금
Me.myComboBox.Items.Add(New GenericListItem(Of Integer)("Text to be displayed", 1))
그리고 항목의 검색 :이 경우 정수
Dim oItem As GenericListItem(Of Integer) = CType(Me.myComboBox.SelectedItem, GenericListItem(Of Integer))
MessageBox.Show("The value of the Item selected is: " & oItem.Value.ToString())
이 유형
Integer
객체 또는 값 유형의 모든 유형이 될 수 있음을 유의하십시오. 사용자 정의 클래스 중 하나의 객체가되고 싶다면 괜찮습니다.기본적으로이 접근 방식은 무엇이든합니다.
vb.net 2015 dosen't work : ( – Rinos