如何检查上一个标签是否与数组中的某个标签具有相同的值



我正在尝试创建一个;啪"游戏我试图检查标签的前一个文本是否与标签的当前文本相对应,例如,如果标签的上一个文本是bee,而当前显示是bee,它将显示"Snap!"。

这是我到目前为止的代码:

Private Sub btnOne_Click(sender As Object, e As EventArgs) Handles btnOne.Click
Dim imageResourceNames = {"Owl", "Bee", "Bird", "Frog", "Duck"}
Dim randImage As New Random
Dim index = randImage.Next(imageResourceNames.Length)
Dim imageResourceName = imageResourceNames(index)
Dim img = DirectCast(My.Resources.ResourceManager.GetObject(imageResourceName), Image)
picOne.Image = img
picOne.Visible = True
lblDisplay.Text = imageResourceNames(Index)
btnOne.Enabled = False
If lblDisplay.Text = imageResourceName Then
Console.WriteLine("snap!")
lblDisplay.Text = "Snap!"
End If
End Sub

虽然我没有收到错误,但标签似乎总是显示'Snap!'。如果有人知道如何解决这个问题,我将非常感激!

谢谢,

您将imageResourceName&lblDisplay.Text设置为相同的值imageResourceNames(index)。所以当你的iflblDisplay.Text = imageResourceName总是要被执行的时候。


您还没有展示足够的代码来给出如何使其工作的明确答案,但类似这样的东西可能很接近:

Private CurrentImageResourceName As String = String.Empty
Private Sub btnOne_Click(sender As Object, e As EventArgs) Handles btnOne.Click
Dim imageResourceNames = {"Owl", "Bee", "Bird", "Frog", "Duck"}
Dim randImage As New Random
Dim index = randImage.Next(imageResourceNames.Length)
Dim imageResourceName = imageResourceNames(index)
Dim img = DirectCast(My.Resources.ResourceManager.GetObject(imageResourceName), Image)
picOne.Image = img
picOne.Visible = True
btnOne.Enabled = False
If CurrentImageResourceName = imageResourceName Then
Console.WriteLine("snap!")
lblDisplay.Text = "Snap!"
End If

CurrentImageResourceName = imageResourceName
End Sub

您需要对其进行重构,使其以您想要的方式工作。

Label不是数据存储,所以不要再把它当作数据存储。它只是向用户显示文本。如果你想知道以前的值是什么,那么把它存储在一个变量中。

Private previousImageResourceName As String
Private currentImageResourceName As String
Private randImage As New Random

和:

Dim imageResourceNames = {"Owl", "Bee", "Bird", "Frog", "Duck"}
Dim index = randImage.Next(imageResourceNames.Length)
previousImageResourceName = currentImageResourceName
currentImageResourceName = imageResourceNames(index)
Dim img = DirectCast(My.Resources.ResourceManager.GetObject(imageResourceName), Image)
picOne.Image = img
picOne.Visible = True
lblDisplay.Text = currentImageResourceName
btnOne.Enabled = False
If currentImageResourceName = previousImageResourceName Then
Console.WriteLine("snap!")
lblDisplay.Text = "Snap!"
End If

最新更新