我在button裡放了下面的程式
我希望button一按下去 Image1就可以顯現出來
但加了if... end if 裡的程式後,Image1完全都不動
如果沒加if... end if 裡的程式 Image1就可以執行
為什麼呢?難道vb.net一次只能執行一個事件嗎?
各位大大~~求救丫
Private Sub ImageButton3_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton3.Click
Image1.Visible = True
System.Windows.Forms.Application.DoEvents()
If Rabut_LandArea.Checked Then
ZoneAreaData()
ElseIf Rabut_IsPublic.Checked Then
PublickAreaData()
ElseIf Rabut_DecideInfo.Checked Then
DecideInfoData()
ElseIf Rabut_ApplyCase.Checked Then
ApplyCaseData()
Image1.Visible = True
ElseIf Rabut_CityPlan.Checked Then
CityPlanAreaData()
End If
問題的重點不是在於副程式的寫法,
而是因為系統運作狀況, 還來不及將畫面 Refresh 秀出 image1.visible 的結果,
就已經開始付程式的運作,
副程式因為吃掉了大半的 CPU 資源, 那 CPU 當然沒空閒來重整畫面,
所以就會等到附程式做完才接著做 image1 顯示的動作.
要改善這個問題, 我們只要在副程式開始運作之前,
強迫系統一定要先做一次畫面的 refrersh, 那狀況就解決了.
把程式開頭改成以下方式 :
Private Sub ImageButton3_Click(ByVal sender As System.Object, ByVal _
e As System.Web.UI.ImageClickEventArgs) Handles _
ImageButton3.Click
Image1.Visible = True
'增加這個會自動消失的回應訊息, 強迫系統一定要先做畫面的更新,
' 然後才進入副程式運作.
'參數 1 是等待 1 秒鐘後結束, 10 是不要真正秀出這個 msgbox , 以避免在畫
' 面上造成殘留影像 !!
Call CreateObject("WScript.Shell").Popup("任何訊息內容", 1, _
"訊息Title", 10)
If Rabut_LandArea.Checked Then................................
...........................................................
...........................................................