2014-12-04 105 views
0

1.当我从列表框1中选择一个项目时,它显示有关列表框2中项目的信息。但是,当我点击listbox1中的一个项目时,它会向我显示信息并在列表框2中将它添加到它的末尾。我如何摆脱0,或者我在做什么导致这个?我认为它可能显示索引号。这里是我的代码 -0当列表框1中选择的项目时显示0显示

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

2.Also,我怎么会清除列表2当我选择列表1中不同的项目,使他们不都在同一时间填充列表2?

+0

你为什么使用ListBox作为rela特德项目?列表框用于显示用户可以从中选择的多个项目。它看起来像一个标签将是一个更好的选择。 – 2014-12-04 03:36:54

回答

1

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

变化:

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

要:

If ListBox1.SelectedIndex = 2 Then 
    ListBox2.Items.Clear 
    ListBox2.Items.Add("60137") 
End If 

这是一种替代方法:

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 
+0

我知道这很粗糙。你会用什么来代替这个?它仍然增加了一个0例如“601370”我愿意学习:)谢谢你。 – King96 2014-12-04 03:47:25

相关问题