Debuggen einzelner Control Instanzen einer referenzierten DLL

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von exc-jdbi.

    Debuggen einzelner Control Instanzen einer referenzierten DLL

    Hallo,

    ich habe eine DLL mit eigenen Controls erstellt.

    In meinem Hauptprojekt habe ich nun eine ganze Menge dieser Controls eingebunden. Ich bin auch in der Lage Breakpoints in der referenzierten DLL zu setzen und den Programmablauf dadurch an bestimmten Stellen zu stoppen und debuggen.

    Mein Problem ist nun wie folgt: Ich habe von einem bestimmten Control 6 Instanzen in ein Form eingefügt. Jedes dieser Control verfügt über ein .Load Event. In diesem Event habe ich einen Breakpoint gesetzt. Ich erwarte nun, wenn das Form geladen wird, dass alle 6 Instanzen des Controls im zugehörigen .Load Event initialisiert werden. Komischerweise stoppt der Debugger aber nur 4x im Control und erst wenn das komplette Form angezeigt wird und ich klicke ein Control darin an, dann stoppt er 2 weitere Male.

    Meine Frage lautet nun: gibt es eine Möglichkeit herauszufinden wenn der Debugger stoppt, in welcher Instanz des Controls er sich dabei befindet, bzw. gibt es eine Möglichkeit die Eigenschaften aller Instanzen sinnvoll angezeigt zu bekommen?

    Mit VB2010 ja eher nicht, aber was ist mit VS2017?
    Du könntest z.B. eine temporäre Variable einbauen:

    VB.NET-Quellcode

    1. Dim temp = Me

    Sobald der Debugger am Haltepunkt stoppt, mit der Maus auf temp zeigen → Eigenschaften anschauen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @roepke In welchem Kontext befinden sich die Controls zueinander?
    Finde heraus, wer das Form_Load aufruft bzw. die letzte Deiner Funktionen, wo es noch nicht aufgerufen wird,
    meist ist das .Show nach der Instanziierung.
    Wenn Du diese Zeile dann erreicht hast, setze den Haltepunkt in die FormLoad.
    Oder
    gib dem Control eine Boolean Property im DEBUG, und wenn die True ist, rufe Debugger.Break() auf.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich weiss zwar jetzt nicht genau wie du die Controls gemacht hast, da ja kein Code vorhanden ist.

    Man könnte ein Property Name (sofern nicht schon vorhanden) machen, und bei der Instanziierung einen Namen vergeben. Wenn du nun an den Breakpoint gelangst schauen welcher der 6 unterschiedlichen Namen es ist.

    Freundliche Grüsse

    exc-jdbi