需要帮助显示来自不同列表框vb.net的相同列表框项信息

时间:2015-02-06 02:57:41

标签: .net vb.net listbox

在我目前的项目中,我正在制作纸牌游戏。基本上它是如何工作的我有一个名为“lstdeck”的列表框。这是您找到所有卡片的地方。第二个叫做“lsthand”。这是从“lstdeck”取出5张牌并将其放入“lsthand”时创建的牌。

当从列表框(卡座或手牌)中选择卡时,卡信息应显示在“txtdescription”中。但是我无法弄清楚如何让多个listbox.selecteditem调用相同的布尔值。这是我希望工作的一小部分但是让我失望。

Dim CurrentList as string
Private Sub lsthand_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles lsthand.SelectedIndexChanged
    Currentlist = "lsthand"
    CheckCards()
End Sub

Private Sub CheckCards()
    Dim FindSelection As String = ".selecteditem"
    If Currentlist & FindSelection = "Face Card 1" Then
       txtdescription.text = "This is the first face card."

在上面的实例中,选择名为“Face Card 1”的卡片(显示在列表框中)。它应该在哪个列表框中无关紧要。希望添加两个字符串,一个是“lsthand”和一个“.selecteditem”,结果将是:“lsthand.selecteditem”。不幸的是,这不起作用。有人知道解决方案吗?

另外,我意识到我可以创建一个“lstdeck.selecteditem”私有子来检查该列表框,一个用于“lsthand”。但我使用了大约180张不同的卡和6个列表框。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

只需创建一个处理所有SelectedIndexChanged

的子

我想你想要这样的事:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ListBox1.Items.AddRange(New String() {"dog", "cat", "rabbit", "tux"})
    ListBox2.Items.AddRange(New String() {"earth", "fire", "water", "air"})
    ListBox3.Items.AddRange(New String() {"Green Day", "Limp Bizkit", "Donots", "Guano Apes"})
End Sub

Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged, ListBox2.SelectedIndexChanged, ListBox3.SelectedIndexChanged
    If DirectCast(sender, ListBox).SelectedItem = "cat" Then
        MsgBox("best animal!")
    Else
        MsgBox("something else...")
    End If
End Sub