我非常需要幫助,我正在製作的遊戲。對於一些情況,我正在製作一款記憶遊戲,並且我有下面這段很麻煩的代碼。我在表單上有一堆標籤,確切地說是16個,每個標籤中隨機生成一個符號。每個符號在標籤中出現兩次。再次啓動代碼之前等待1秒 - VB.NET
------------------------------Continued----------------------------------------
'MsgBox("hello") 'used to check if the second inccorect press shows up - it does show but instantly changes colour
'''''''''''''''''NEED SOME CODE THAT PAUSES IT HERE'''''''''''''''
labels(0).ForeColor = Color.DarkRed
sender.ForeColor = Color.DarkRed
End If
flips = 1
End If
End If
tmrmemory.Enabled = True ' starts the timer after the user clicks the first label
End Sub
什麼是應該發生的是,當標籤點擊不匹配,就應該改變他們兩個回「暗紅色」,這是窗體的背景顏色之前同時顯示在短期內點擊的標籤。
我嘗試過使用計時器,但後來我不能使用sender.forecolor=color.darkred
,因爲它沒有全局聲明。
我也試過使用命令Threading.Thread.Sleep(500)
,但它仍然沒有顯示第二次錯誤的點擊。我知道我使用的代碼是有效的,因爲當我使用消息框時,我可以看到兩個符號,當兩次點擊都正確時,它仍然保留。
非常感謝你,我結束了使用'Threading.Thread.Sleep'之前使用'Me.Refresh'這固定我的問題。但是,是的,我確實注意到這個表單在這段時間內沒有響應。我讀了你的文章,但似乎無法讓我的頭,我仍然是相當新的VB和編碼的事情。我現在可能會堅持使用線程函數,除非我知道它。謝謝! –
有沒有替代'me.refresh'命令,不會使窗體看起來像閃爍或更好的詞「刷新?」這只是一個美學的東西 –
將窗體的DoubleBuffered屬性設置爲True。這應該照顧閃爍的問題。另外,如果要刷新的控件數量不大,則調用每個控件的Refresh方法,而不是刷新整個表單。 –