2010-02-08 2 views
2

VB6 프로젝트 내에서 만든 사용자 컨트롤의 공용 프로 시저를 참조하는 데 문제가 있습니다.VB6 사용자 컨트롤 내에서 함수 참조하기

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 컴파일 및 작품

간단한 예 (EXE), 나는 버튼과 사용자 컨트롤과 양식을 가지고 괜찮아요. 그리고 폼에 updateMessage를 입력 할 때 적절한 요구 사항이있는 인텔리 센스 목록에 나타납니다. 내가 가진 문제는 사용자 정의 컨트롤 내에서 코드의 적절한 섹션으로 이동하는 대신 updateMessage의 "정의로 이동"을 원할 때 메시지가 항상 다음과 같이 반환됩니다.

"Can not jump to ' 현재 참조되지 않은 라이브러리 'Unknown1'에 있기 때문에 updateMessage '

"Unkown1"의 번호가 매겨진 접미사가 수시로 변경됩니다.

이 절차에 대한 참조가 없다면 인텔리 센스에 나타나지 않고 프로젝트가 컴파일되지 않아야합니다. MZTools에서이 플러그인을 실행하면 (이 플러그인이 설치되어 있는지 여부에 관계없이 오류가 표시되지만) updateMessage 프로 시저로 이동하여이 함수를 호출하는 모든 프로 시저를 찾을 수 있으므로 두 함수 사이의 링크가 있어야합니다. MZTools가 텍스트 매칭 패턴을 사용하여 찾은 것인지 확실하지 않습니다.)

이 문제에 대해 밝히는 사람이 있다면 매우 좋을 것입니다.이 불쌍한 VB6 개발자는 많은 번거 로움을 피하십시오!

VB6을 SP6 (빌드 9782)으로 설치하고 HP dx2400에서 XP SP3을 실행하고 있습니다.

답변

0

예, 이것은 매우 성가신 일이며, VB6에서는 버그라고 확신합니다. 개체 브라우저에서 updateMessage 메서드를 찾아 두 번 클릭하면 정의가 나타납니다. 따라서 컴파일러는 실제로 을 사용하여에 정의가 있는지 알 수 있습니다. Shift + F2 키를 누르면 해당 위치로 이동할 수 없습니다.

+0

어, 나는 그것이 내 빌드/참조 또는 뭔가가되기를 바랐다. 그것은 세상의 종말은 아니지만 매번 이름을 검색해야만하는 속도를 늦 춥니 다. 나는 또한 이것이 UserControls를 컴파일 된 컨트롤로 취급하고 소스에 액세스하려고 시도하지 않는다는 사실과 관련이 있다는 의혹을 가지고있다. 이견있는 사람? –

+0

저는 UserControls의 저급 역학에 실제로 관심이 없습니다. 나는 때때로 그들이 때때로 성가시다는 것을 알고 있습니다. 나는이 특별한 이슈가 너무 성가신 것을 발견하고 종종 Project Analyzer http://www.aivosto.com/project/project.html이라는 도구를 사용하여 코드를 찾아 보았다. UC 멤버 정의를 클릭하기 만하면된다. 그들. 우리는 5 ~ 6 년 전에 Enterprise 에디션 (버전 7)을 구입했으며 정말 도움이되었다. 그 이후로 가격이 폭등했지만, VB6에서 많은 일을 할 것이라는 것을 알고 있다면 그것을 확인하고 싶을 수도 있습니다. – raven

관련 문제