我將陣列放在事件一上..
但卻要在事件二用到事件一的陣列..
執行時..出現編譯有誤===>沒有定義sub 或 function..
我該怎麼辦?..
那裡錯了..
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: 163.17.80.47
若陣列的使用範圍在表單之內則可將陣列宣告為全域陣列變數
若陣列的使用範圍在整個專案則可將陣列宣告在模組中
亦可將陣列宣告在事件程序中但宣告為Public
例: Public Arr(50) as Integer
: --
: ※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: 163.17.80.47
--
[1;33;40m 有一天...當我年齡到了什麼都不在乎時..... [m
[1;33;40m 酸酸的白色長髮.....和兩隻貓咪......是唯一的人生............ [m
--
[1;36m※ Origin: [32m海大計中 BBS [36m◆ From: [33m163.30.196.94 [0m
這位仁兄~~~~
陣列可宣告為Public嗎??
請自己確定過再po
--
* Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>
所謂的事件也不過是個 Subroutine
只不過它會因各個控制項的行為發生而自動執行
VB中的參數宣告會因為declare的位置及方式不同
而有不同的生命週期
如果是在Form中宣告的則其生命週期隨著Form_Unload而從記憶體中釋放
如果是在Sub或是Function裡頭宣告的
(Sub與Function裡頭不可再宣告public或private)
則該參數隨著End Sub或End Function而釋放消失
如你在其他ㄉ程序中再去呼叫當然會呼叫不到
變數共用的方法有很多種
針對你的情況提供幾種作為參考
如果你所謂的事件一及事件二都在同一個Form或是任何Module的話
可在該Form或Module開頭就先宣告一個空陣列
等到要用的時候再去ReDim
如果你考慮到想節省記憶體的話
可直接在事件的宣告中傳值(這是最好用的方法)
例如: Private Sub txtComCode_Change()
Dim AAA(10) as string
:
:
:
CheckCode(AAA())
:
End Sub
Private Sub CheckCode(byref CodeSource() as string)
:
:
:
End Sub
由於陣列並無法宣告成Public
但是該陣列卻又會經常被呼叫
那麼是否考慮改用Recordset會比較好用,況且Recordset提供了更多的彈性用法
如果還是不想用Recordset
建議你在該專案中開個Module(好像叫作模組吧)
在Module中即可將該陣列宣告為Public
並且可在該專案中"四處引用""到處呼叫"
不過倒是佔記憶體
試試看吧~~
: > 例: Public Arr(50) as Integer
: > : --
:
: 這位仁兄~~~~
: 陣列可宣告為Public嗎??
: 請自己確定過再po
: --
: * Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>
--
[1;33;40m 有一天...當我年齡到了什麼都不在乎時..... [m
[1;33;40m 酸酸的白色長髮.....和兩隻貓咪......是唯一的人生............ [m
--
[1;36m※ Origin: [32m海大計中 BBS [36m◆ From: [33m140.121.179.101 [0m
--
[1;33;40m 有一天...當我年齡到了什麼都不在乎時..... [m
[1;33;40m 酸酸的白色長髮.....和兩隻貓咪......是唯一的人生............ [m
--
[1;36m※ Origin: [32m海大計中 BBS [36m◆ From: [33m140.121.125.228 [0m
不好意思~~可能我沒寫清處
大部分的人應該會在Form裡頭處理這個問題
如果是在寫DLL或是COM元件的話
用的都是Class或Module
在Class 或是 Module裡頭當然可宣告為Public
不然你可試試在For裡頭宣告一個Public的陣列
如果能跑的話我可能就要打電話去問微軟ㄌ
我買到的VS有問題
可能也很少人....我自己也沒寫過..在for回圈裡宣告...
挺酷的方法....
可能我們都誤會彼此的想法了...
你提到了dll com元件 似乎有扯遠囉...
那時他只問... 在"事件中"....
而且我只是回答你的"陣列可以宣告成Public"
因為我的層度比較差...所以我不會在for回圈.
或某個子程序中才去宣告.....
我沒說可以這樣宣告說....
因為我也沒看過別人....這樣子宣告....
: * Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>
--
恕刪..
> : * Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>
--
獨上孤嶺聞 [1;5;34m殘風 [0m
為誰寒露立 [1;5;35m千宵 [0m
[1;37m[ [1;5;36m刀魔 [0m [1;37m] [0m-星野殘 [1;31m紅 [0m
--
[1;32m※ Origin: [33m摩卡小築 [37m<moca.csie.chu.edu.tw> [m
[1;31m◆ From: [36mu199-126.u203-204.giga.net.tw [m