看板 Visual_Basic 關於我們 聯絡資訊
因為是想寫一個計算在3秒時間內按下按鈕的次數 不知道以下的寫法,為什麼n都是0 Dim n As Integer '設定n、t全域變數 Dim t As Integer Private Sub Command1_Click() Static n '靜態變數保留值 n = n + 1 Timer1.Enabled = True End Sub Private Sub Timer1_Timer() t = t + 1 If t = 3 Then MsgBox ("時間到") Print n End If End Sub 以上謝謝各位前輩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.11.170.53
ClubT:把 Static n 拿掉就好了 ... 話說 Static 是幹麻的? 07/05 22:56
jwjeng:自己還加了註解說那是靜態變數 07/05 23:42
stator:原來拿掉就可以了,因為想說要保留每次按下N的值 07/06 02:57
stator:謝謝樓上二位前輩~ 07/06 02:58
stator:請教前輩,因為參考網路的文章,說靜態變數會保留值 07/06 03:01
stator:這邊為什麼要拿掉呢?謝謝 07/06 03:02
fumizuki:拿掉第一行 Dim n 就好了 07/06 07:26
fumizuki:Command1_Click 中的Static也是宣告變數 07/06 07:27
fumizuki:可見範圍是自己(Command1_Click) 07/06 07:28
fumizuki:跟開頭宣告的模組變數是不同的變數 07/06 07:28
fumizuki:或者拿掉static,才可在Command1_Click以外的地方重設n 07/06 07:29
fumizuki:(如果需要的話) 07/06 07:29
MOONRAKER:全域變數或區域靜態變數,兩者選一啦 07/06 09:11
MOONRAKER:不然就會發生以上版主解釋的scope問題 07/06 09:11
stator:謝謝版主及樓上前輩 07/06 12:25