我有一个列表框和一个类。 该类称为CTS_Warnings_List 列表框名为lbpropWarningFacList
这是班级:
Public Class CTS_Warnings_List
Public _Warning As String
Public _WarnID As Integer
Public Property Warning() As String
Get
Return _Warning
End Get
Set(ByVal value As String)
_Warning = value
End Set
End Property
Public Property WarnID() As Integer
Get
Return _WarnID
End Get
Set(ByVal value As Integer)
_WarnID = value
End Set
End Property
Sub New(ByVal Warning As String, ByVal WarnID As Integer)
Me.Warning = Warning
Me.WarnID = WarnID
End Sub
End Class
所以现在我想在列表框中添加一个新项目。所以我尝试了这个:
Dim llist As New CTS_Warnings_List("K", 8)
lbpropWarningFacList.Items.Add(llist)
我也试过这个:
lbpropWarningFacList.Items.Add(New CTS_Warnings_List("K", 8))
当我运行应用程序并将其添加到列表框时,在每种情况下我都会在列表框中显示:
NameOfApplication.NameOfClass
作为列表框中的显示。
我做错了什么?
谢谢
答案 0 :(得分:3)
列表框只知道如何显示字符串
因此,当您向列表框添加任何类型的项目时,它会通过调用项目ToString()
方法显示它获得的值。
您应该覆盖ToString()
方法,或者只是首先输入项目作为字符串。
在您的情况下,请将其添加到您的班级:
Public overrides function ToString() as string
return Me.Warning & " " & Me.WarnID.ToString()
End Function
答案 1 :(得分:2)
您正在将CTS_Warnings_List对象发送到列表框。列表框如何知道如何处理该对象?它不知道如何处理该对象。如果要将对象的属性发送到列表框,则必须执行以下操作:
lbpropWarningFacList.Items.Add(llist._WarnID & ": " & llist.Warning)
答案 2 :(得分:1)
感谢您的回复。但我发现如果我添加
NameOfListBox.DisplayMemeber = "PropertyOfClass"
NameOfListBox.ValueMember = "PropertyOfClass"
只需添加它,它现在就会在列表框中显示正确的数据。