2012-04-03 6 views
0

In einem aktuellen Projekt habe ich zwei Anwendungen, die im Wesentlichen die gleichen Dinge tun. In der Benutzeroberfläche der ersten Anwendung habe ich eine Klasse entwickelt, die ein TreeView-Steuerelement erbt. Ich habe den OwnerDrawsAll-Wert der DrawMode-Eigenschaft verwendet und das Erscheinungsbild von TreeView angepasst. In App 1 funktioniert es großartig, und ich könnte nicht zufriedener sein. Ich hatte seit ein paar Monaten kein Problem damit und habe es in dieser Zeit häufig benutzt.VB.NET IDE Debugger beendet auf "Exit Sub"

In der zweiten Anwendung muss ich die gleichen Änderungen vornehmen, also verwende ich die gleiche benutzerdefinierte TreeView-Klasse. In App 2, während der ersten Gelegenheit, dass die TreeView das DrawNode-Ereignis eingibt, funktioniert alles gut, bis ich in die "Exit Sub" -Zeile meines DrawMode-Event-Handlers komme. Wenn ich versuche, durchzukommen, stürzt die App ohne Warnung komplett ab. Weil es bei der Anweisung "Exit Sub" passiert, kann ich es nicht in einen Try/Catch einfügen. Die Anweisung, die das DrawNode-Ereignis auslöst, ist in einen Try/Catch-Block eingeschlossen, wird aber nicht abgefangen.

Ich habe alle Funktionen in meinem DrawNode-Event-Handler mit dem gleichen Ergebnis auskommentiert. Code enthalten:

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 

Es gibt zwei Unterschiede in diesen Anwendungen. App 1 ist ein Programm, das auf x86 als Zielplattform kompiliert wurde. App 2 ist ein Add-In für ein Programm namens SolidWorks und ist somit eine .dll, kompilierte Zielplattform ist AnyCPU. Die benutzerdefinierte TreeView-Klasse befindet sich in einer für AnyCPU kompilierten Bibliothek.

Bitte helfen! Ich möchte die Arbeit, die bisher gemacht wurde, nicht verlieren!

SH

+0

Wenn ich etwas nicht vermisse, glaube ich, dass Sie "End Sub" meinen. "Exit Sub" hat eine andere Bedeutung als "End Sub" ... und Ihre angegebene Quelle enthält keine "Exit Sub" -Anweisungen. –

+0

Dokumentieren Sie den Inhalt des Ausgabefensters. –

Antwort

0

Ich bemerkte dieses Verhalten auch. Behebt es in meinem Fall durch Ersetzen von Exit Sub durch Return

Verwandte Themen