我正在嘗試創建一個“快照!” 游戲。我正在嘗試檢查標簽的先前文本是否對應于標簽的當前文本,例如,標簽的先前文本是否為bee,而當前顯示是否bee將顯示“捕捉!”。
到目前為止,這是我的代碼:
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!'. 如果有人知道如何解決這個問題,我將不勝感激!
謝謝,
uj5u.com熱心網友回復:
您將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
您需要對其進行重構以使其以您想要的方式作業。
uj5u.com熱心網友回復:
ALabel不是資料存盤,因此請停止將其視為資料存盤。它只是向用戶顯示文本。如果您想知道之前的值是什么,請將其存盤在變數中。
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/459314.html
標籤:VB.net
