Vb.net 在Listbox1中选择项时,0添加到listbox2显示

Vb.net 在Listbox1中选择项时,0添加到listbox2显示,vb.net,listbox,Vb.net,Listbox,1.当我从列表框1中选择一个项目时,它会在列表框2中显示该项目的相关信息。但是,当我单击listbox1中的某个项目时,它会显示信息,并在listbox2的末尾添加一个0。我如何摆脱0,或者我正在做什么导致了这种情况?我想它可能是在显示索引号。这是我的密码- If ListBox1.SelectedIndex = 2 Then ListBox2.Items.Add("60137" & ListBox2.Items.Add("60138")) 2.此外,当我在列表1中选择不同的项目时,如

1.当我从列表框1中选择一个项目时,它会在列表框2中显示该项目的相关信息。但是,当我单击listbox1中的某个项目时,它会显示信息,并在listbox2的末尾添加一个0。我如何摆脱0,或者我正在做什么导致了这种情况?我想它可能是在显示索引号。这是我的密码-

If ListBox1.SelectedIndex = 2 Then ListBox2.Items.Add("60137" & ListBox2.Items.Add("60138"))

2.此外,当我在列表1中选择不同的项目时,如何清除列表2,使它们不会同时填充列表2?

*忽略这是一个可怕的设计这一事实

更改:

If ListBox1.SelectedIndex = 2 Then ListBox2.Items.Add("60137" & ListBox2.Items.Add("60138"))
致:

以下是另一种方法:

Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim petA As New Pet
        petA.Name = "Puss in Boots"
        petA.Species = "Cat"
        ListBox1.Items.Add(petA)

        Dim petB As New Pet
        petB.Name = "Nemo"
        petB.Species = "Fish"
        ListBox1.Items.Add(petB)

        Dim petC As New Pet
        petC.Name = "Rango"
        petC.Species = "Lizard"
        ListBox1.Items.Add(petC)
    End Sub

    Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
        If ListBox1.SelectedIndex <> -1 Then
            Dim P As Pet = DirectCast(ListBox1.SelectedItem, Pet)
            Label1.Text = P.Species
        End If
    End Sub

End Class

Public Class Pet

    Public Name As String
    Public Species As String

    Public Overrides Function ToString() As String
        Return Name
    End Function

End Class
公共类表单1
私有子表单1_Load(发送方作为对象,e作为事件参数)处理MyBase.Load
Dim petA作为新宠物
petA.Name=“穿着靴子的猫”
petA.Species=“猫”
ListBox1.Items.Add(petA)
Dim petB作为新宠物
petB.Name=“尼莫”
petB.Species=“鱼”
ListBox1.Items.Add(petB)
Dim petC作为新的Pet
petC.Name=“Rango”
petC.Species=“蜥蜴”
ListBox1.Items.Add(petC)
端接头
私有子ListBox1\u SelectedIndexChanged(发送方作为对象,e作为事件参数)处理ListBox1.SelectedIndexChanged
如果ListBox1.SelectedIndex-1,则
Dim P As Pet=DirectCast(列表框1.SelectedItem,Pet)
Label1.Text=P.物种
如果结束
端接头
末级
公营宠物
公共名称作为字符串
作为弦的公共物种
Public将函数ToString()重写为字符串
返回名称
端函数
末级

为什么要对相关项目使用列表框?列表框用于显示用户可以从中选择的多个项目。这似乎是一个更好的选择。我知道这是相当粗糙的。你建议用什么来代替这个?它仍然添加了一个0,例如“601370”,我愿意学习:)仍然谢谢你。
Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim petA As New Pet
        petA.Name = "Puss in Boots"
        petA.Species = "Cat"
        ListBox1.Items.Add(petA)

        Dim petB As New Pet
        petB.Name = "Nemo"
        petB.Species = "Fish"
        ListBox1.Items.Add(petB)

        Dim petC As New Pet
        petC.Name = "Rango"
        petC.Species = "Lizard"
        ListBox1.Items.Add(petC)
    End Sub

    Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
        If ListBox1.SelectedIndex <> -1 Then
            Dim P As Pet = DirectCast(ListBox1.SelectedItem, Pet)
            Label1.Text = P.Species
        End If
    End Sub

End Class

Public Class Pet

    Public Name As String
    Public Species As String

    Public Overrides Function ToString() As String
        Return Name
    End Function

End Class