我有引用,我已經一個VB6項目中創建用戶控制的公共程序的問題。引用功能控制
一個簡單的例子(EXE),我有一個按鈕和一個用戶控制的一種形式:
Option Explicit
Private Sub Command1_Click()
UserControl1.updateMessage ("TIME NOW: " & DateTime.Time)
End Sub
用戶控件代碼如下:
Option Explicit
Public Sub updateMessage(ByVal newMessage As String)
Label1.Caption = newMessage
End Sub
此exe編譯和作品很好,當我在窗體中輸入updateMessage時,它會出現在智能感知列表中,並具有適當的要求。我遇到的問題是當我想要「轉到updateMessage的定義」時,而不是轉到用戶控件中代碼的相應部分,該消息總是返回:
「無法跳轉到' updateMessage',因爲它位於當前未引用的庫'Unknown1'中。「
其中不時「Unkown1」的變化的編號後綴。
看來,如果有這一程序沒有參考的話,那就不會出現在智能感知和項目不應該編譯。當用MZTools運行時(儘管這個錯誤出現與插件安裝無關),我可以進入updateMessage過程,並使用它來查找調用該函數的所有過程,因此兩者之間的鏈接應該存在(雖然我我不確定MZTools是否使用文本匹配模式發現)。
如果有任何人能在這個問題上閃耀光芒,那將是非常讚賞,並保存該VB6開發窮很多的麻煩!
我有VB6的安裝SP6(建立9782)和我在HP dx2400運行XP SP3。
呃,我希望這只是我的構建/參考或什麼。這不是世界末日,但是減緩了我不得不每次搜索名字的速度。我也懷疑這與它將UserControls視爲一個編譯控件的事實有關,並且不會嘗試訪問它們的源代碼。有什麼想法嗎? – 2010-02-09 11:54:08
我並不是真正瞭解UserControls的低級機制,我只是知道他們有時很煩人。我發現這個特別的問題非常令人討厭,我經常發現自己使用名爲Project Analyzer的工具瀏覽代碼http://www.aivosto.com/project/project.html它能夠帶我到UC成員定義,只需點擊他們。我們在5年或6年前購買了企業版(第7版),我發現它確實很有幫助。自那時起,價格一路飆升,但如果您知道您將在VB6中進行大量工作,您可能需要檢查一下。 – raven 2010-02-09 15:21:31