Отладчик VB.NET IDE завершает работу при Exit Sub

В текущем проекте у меня есть два приложения, которые делают практически одно и то же. В пользовательском интерфейсе первого приложения я разработал класс, наследующий элемент управления TreeView. Я использовал значение OwnerDrawsAll свойства DrawMode и настроил внешний вид TreeView. В приложении 1 он отлично работает, и я очень доволен. У меня не было проблем с ним в течение нескольких месяцев, и я часто использовал его в то время.

Во втором приложении мне нужно внести те же изменения, поэтому я использую тот же пользовательский класс TreeView. В приложении 2 при первой возможности, когда TreeView входит в событие DrawNode, все работает нормально, пока я не доберусь до строки «Exit Sub» моего обработчика событий DrawMode. Если я попытаюсь пройти через это, приложение полностью вылетит без предупреждения. Поскольку это происходит в операторе «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

В этих приложениях есть два отличия. Приложение 1 — это программа, скомпилированная для x86 в качестве целевой платформы. Приложение 2 является надстройкой для программы SolidWorks и, таким образом, является .dll, скомпилированной целевой платформой AnyCPU. Пользовательский класс TreeView находится в библиотеке, скомпилированной для AnyCPU.

Пожалуйста помоги! Я не хочу потерять работу, которая была сделана до сих пор!

SH


person Superhuman    schedule 03.04.2012    source источник
comment
Если я что-то не упустил, я полагаю, вы имеете в виду End Sub. Exit Sub имеет другое значение, чем End Sub... и предоставленный вами источник не содержит никаких операторов Exit Sub.   -  person Sam Axe    schedule 04.04.2012
comment
Задокументируйте содержимое окна вывода.   -  person Hans Passant    schedule 04.04.2012


Ответы (1)


Я тоже заметил это поведение. Исправил это в моем случае, заменив Exit Sub на Return

person JMan    schedule 06.06.2013