假設我在command1和command2的程式碼內設定一變數X...
當command1的變數X值改變時...
要怎麼使command2裡的X值也跟著改變?
也就是說有辦法讓兩控制元件間有一個共同變數嗎?
2007-02-01 20:05:18 · 2 個解答 · 發問者 KCVO 1 in 電腦與網際網路 ➔ 程式設計
Option Explicit
'================================================================
'1.在程序內部使用宣告的變數,只有在該程序執行時才存在,
' 程序一結束,該變數的值也就消失了。
' 此外,程序中的變數值對程序來說是區域性的,也就是說,
' 您無法在一個程序中存取另一個程序中的變數。
' 由於這個特點,您就可以在不同程序中使用相同的變數名稱,而不必擔心
' 名稱衝突的問題。
'
'2.假您一定要在command1和command2的程式碼內設定一變數X,有下列方式
' 2.1.在表單、一般或物件類別模組的宣告區塊中宣告變數,這將使變數對
' 模組中的所有程序有效。
' 2.2.使用 Public 保留字宣告變數,這將使變數在整個應用程式中都有效。
' 2.3.使用 Static 保留字宣告一個區域變數,即使程序結束,變數值仍然
' 會保留著。
'
'3.若依您的問題可能要選擇 2.3 的方式,這就須要使用控制項陣列了,
' 接著如下例:
' 3.1.在表單上放一個 CommandButton,
' Name 暫訂:Command,Caption:Command1
' 3.2.複製這個 CommandButton,然後貼上,此時vb會詢問您是否要
' 建立一個控制項陣列,選擇...是,此時貼上的 CommandButton
' Name:Command,Caption自訂為Command2
' 3.3.按Command1時變數X=X+1,而按Command2時變數X=Command1所計算的值了
'
'不知道對您有沒有幫助
'===============================================
Private Sub Command_Click(Index As Integer)
Static X As Integer
If Index = 0 Then 'Command1
X = X + 1
Print "Command1:" & X
ElseIf Index = 1 Then 'Command2
Print "Command2:" & X
End If
End Sub
2007-02-02 02:06:53 補充:
不知道 W.J.S大師已經回答了,小弟獻醜了,如有不對的地方,還請大師不吝指教,謝謝。
2007-02-01 21:02:46 · answer #1 · answered by Abel 2 · 0⤊ 0⤋
'把X改成全域變數就好了
Dim X As Integer
Private Sub Command1_Click()
X = 10
End Sub
Private Sub Command2_Click()
MsgBox X
End Sub
2007-02-01 20:30:18 · answer #2 · answered by W.J.S. 7 · 0⤊ 0⤋