Vb.net 为什么ListBox不能正确显示对象?
我有一个列表框和一个类。 该类称为CTS\u Warnings\u List 这个列表框被称为lbpropWarningFacList 下面是课堂:Vb.net 为什么ListBox不能正确显示对象?,vb.net,listbox,Vb.net,Listbox,我有一个列表框和一个类。 该类称为CTS\u Warnings\u 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(By
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))
我也试过:
Dim llist As New CTS_Warnings_List("K", 8)
lbpropWarningFacList.Items.Add(llist)
lbpropWarningFacList.Items.Add(New CTS_Warnings_List("K", 8))
当我运行应用程序并将其添加到列表框时,在每种情况下,我都会在列表框中显示:
应用程序名称。类名称
作为列表框中的显示
我做错了什么
谢谢您正在向列表框发送CTS\u警告\u列表对象。列表框如何知道如何处理该对象?它不知道如何处理那个物体。如果要将对象的属性发送到列表框,则必须执行以下操作:
lbpropWarningFacList.Items.Add(llist._WarnID & ": " & llist.Warning)
您正在向列表框发送CTS\u Warnings\u列表对象。列表框如何知道如何处理该对象?它不知道如何处理那个物体。如果要将对象的属性发送到列表框,则必须执行以下操作:
lbpropWarningFacList.Items.Add(llist._WarnID & ": " & llist.Warning)
列表框只知道如何显示字符串。
因此,当您将任何类型的项添加到列表框时,它将显示通过调用items
ToString()
方法获得的值
您应该重写
ToString()
方法,或者首先简单地将项作为字符串输入
在您的情况下,将以下内容添加到您的类中:
Public overrides function ToString() as string
return Me.Warning & " " & Me.WarnID.ToString()
End Function
列表框只知道如何显示字符串。
因此,当您将任何类型的项添加到列表框时,它将显示通过调用items
ToString()
方法获得的值
您应该重写
ToString()
方法,或者首先简单地将项作为字符串输入
在您的情况下,将以下内容添加到您的类中:
Public overrides function ToString() as string
return Me.Warning & " " & Me.WarnID.ToString()
End Function
谢谢你的回复。但是我发现如果我加上
NameOfListBox.DisplayMemeber = "PropertyOfClass"
NameOfListBox.ValueMember = "PropertyOfClass"
只需添加此项,即可在列表框中显示正确的数据。感谢您的回复。但是我发现如果我加上
NameOfListBox.DisplayMemeber = "PropertyOfClass"
NameOfListBox.ValueMember = "PropertyOfClass"
只需添加它,现在就可以在列表框中显示正确的数据。您应该重写类中的
ToString
方法。您应该重写类中的ToString
方法。