현재 프로젝트에서 필자는 본질적으로 동일한 작업을 수행하는 두 개의 응용 프로그램을 사용합니다. 첫 번째 응용 프로그램의 UI에서 TreeView 컨트롤을 상속하는 클래스를 개발했습니다. DrawMode 속성의 OwnerDrawsAll 값을 사용하고 TreeView의 모양을 사용자 지정했습니다. 앱 1에서는 멋지게 작동하며 더 기쁘게 생각할 수 없습니다. 나는 몇 달 동안 문제가 없었으며 그 시간에 자주 사용했다."Exit Sub"에서 VB.NET IDE 디버거가 종료됩니다.
두 번째 응용 프로그램에서 동일한 수정을해야하므로 동일한 사용자 지정 TreeView 클래스를 사용하고 있습니다. 응용 프로그램 2에서 첫 번째 기회 동안 TreeView 내 DrawMode 이벤트 처리기의 "끝내기 Sub"줄 때까지 모든 작동합니다 DrawNode 이벤트를 입력합니다. 단계별로 시도하면 앱이 경고없이 완전히 중단됩니다. "Exit Sub"문에서 발생하기 때문에 Try/Catch에 포함 할 수 없습니다. DrawNode 이벤트를 유발하는 문은 Try/Catch 블록에 포함되어 있지만 catch되지는 않습니다.
같은 결과로 내 DrawNode 이벤트 처리기의 모든 기능을 주석 처리했습니다. 아래에 코드가 포함되어 있습니다 :
Public Class TabularTreeView
Inherits System.Windows.Forms.TreeView
Private Sub DrawMyNode(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawTreeNodeEventArgs) Handles MyBase.DrawNode
Try
'Draw the node as default
e.DrawDefault = True
'...commented out and still fails....
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub '<---this statement is where the debugger fails!
End Class
두 가지 차이점이 있습니다. 응용 프로그램 1은 대상 플랫폼으로 x86으로 컴파일 된 프로그램입니다. App 2는 SolidWorks라는 프로그램 용 애드 인이므로 .dll이므로 컴파일 된 대상 플랫폼은 AnyCPU입니다. 사용자 정의 TreeView 클래스는 AnyCPU 용으로 컴파일 된 라이브러리에 있습니다.
도와주세요! 지금까지 완료된 작업을 잃고 싶지 않습니다!
SH
내가 뭔가를 놓치지 않는 한, 나는 "End Sub"를 의미한다고 생각하지 않는 한. "Exit Sub"는 "End Sub"와 다른 의미를 가지고 있으며 제공된 소스에는 "Exit Sub"문이 포함되어 있지 않습니다. –
출력 창의 내용을 문서화하십시오. –