我在引用我在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时,它会出现在具有相应要求的intellisense列表中。我遇到的问题是当我想要“转到updateMessage的定义”时,而不是转到用户控件中代码的相应部分,消息总是返回:
“无法跳转到'updateMessage',因为它位于库''Unknown1'中,当前未被引用。”
其中编号后缀“Unkown1”会不时更改。
似乎如果没有对此过程的引用,那么它将不会出现在intellisense中,并且项目不应该编译。当使用MZTools运行它时(虽然无论安装了哪个插件都出现错误),我可以进入updateMessage过程,并使用它来查找调用此函数的所有过程,因此两者之间的链接应该存在(尽管我我不确定MZTools是否只是发现使用文本匹配模式。
如果那里有人可以对这个问题有所了解,那将非常感激,并为这位可怜的VB6开发人员节省了很多麻烦!
我安装了SP6的SP6(build 9782),并在HP dx2400上运行XP SP3。
答案 0 :(得分:0)
是的,这非常烦人,我确信它是VB6中的一个错误。我这样说是因为,如果在对象浏览器中找到updateMessage
方法并双击它,则会进入定义。所以,编译器实际上 知道定义在哪里,它只是拒绝带你去Shift + F2。