Функции ссылок в пользовательских элементах управления VB6 - PullRequest
2 голосов
/ 08 февраля 2010

У меня проблема со ссылками на публичные процедуры пользовательских элементов управления, которые я создал в проекте 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 (сборка 9782) VB6, и я использую XP SP3 на HP dx2400.

1 Ответ

0 голосов
/ 08 февраля 2010

Да, это очень раздражает, и я убежден, что это ошибка в VB6. Я говорю это потому, что, если вы найдете метод updateMessage в браузере объектов и дважды щелкните по нему, вы перейдете к определению. Таким образом, компилятор на самом деле знает , где находится определение, он просто отказывается отвести вас туда с помощью Shift + F2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...