VB.NET IDE调试器退出“Exit Sub”

时间:2012-04-03 19:56:44

标签: vb.net treeview solidworks

在当前项目中,我有两个基本相同的应用程序。在第一个应用程序的UI中,我开发了一个继承TreeView控件的类。我使用了DrawMode属性的OwnerDrawsAll值,并自定义了TreeView的外观。在应用程序1中,它运行良好,我不能更高兴。我几个月没有遇到任何问题,并且在那个时候经常使用它。

在第二个应用程序中,我必须进行相同的修改,因此我使用相同的自定义TreeView类。在app 2中,在TreeView进入DrawNode事件的第一次机会中,一切正常,直到我到达DrawMode事件处理程序的“Exit Sub”行。如果我尝试单步执行它,应用程序会完全崩溃而不会发出警告。因为它发生在“Exit Sub”语句中,所以我不能将它包含在Try / Catch中。启动DrawNode事件的语句包含在Try / 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

这些应用程序有两个不同之处。 App 1是一个程序,编译为x86作为目标平台。 App 2是一个名为SolidWorks的程序的加载项,因此是一个.dll,编译的目标平台是AnyCPU。自定义TreeView类位于为AnyCPU编译的库中。

请帮忙!我不想失去迄今为止所做的工作!

SH

1 个答案:

答案 0 :(得分:0)

我也注意到了这种行为。通过将Exit Sub替换为Return

来修复此问题