Deigner soll eine Form ignorieren

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

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Xy8000.

    Deigner soll eine Form ignorieren

    Hallo,
    ich habe ein Problem in meiner Klassenbibliothek. In dieser Klassenbibliothek befindet sich eine Klasse, die von Windows.Forms erbt. Nun versucht der Debugger diese Form im Designer-Modus zu öffnen. Dies schlägt natürlich fehl, da noch andere Klassen in der Datei vorhanden sind.
    Der Code an sich funktioniert einwandfrei, dennoch stört es mich, dass der Debugger jedes mal versucht diese Klasse (und alle in der Datei gespeicherten Klassen) zu laden. Gibt es eine Möglichkeit dem Debugger für diese Klasse zu signalisieren, dass er diese nicht beachten soll? Mit dem Debugger geht dies ja auch.

    Bsp.: <System.Diagnostics.DebuggerStepThrough()> _

    Danke im voraus.
    "Das Internet ist nur ein Hype" - Bill Gates
    @Xy8000 Sorge dafür, dass die Form-Klasse die erste Klasse in dieser Datei ist, dann funktioniert der Designer auch.
    Besser ist es, wenn die anderen Klassen in eine andere Datei ausgelagert werden. Wenn es Klassen in der Form-Klasse selbst sind (suboptimal), mach eine neue Datei auf mit einer Partial-Klasse:

    VB.NET-Quellcode

    1. Partial Class DEIN_KLASSENNAME
    2. ' Dein Code
    3. End Class
    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!
    @RodFromGermany habe die Klasse nun an den Anfang der Datei gesetzt, doch der Designer lädt immer noch nicht.

    Trotzdem bleibt das Problem, dass sogar das überliegende Namespace im Projektmappen-Explorer als Form Angezeigt wird. Dadurch öffnet sich nun bei einem Doppelklick der immer noch der Designer (Siehe Bild). Gibt es denn keine Möglichkeit dies zu verhindern? Ich brauche den Designer nicht. Die Form wird vollständig im Code erstellt.

    "Das Internet ist nur ein Hype" - Bill Gates
    Mach folgendes Attribut über die Form, dann sollte der Designer nicht mehr aufgerufen werden:

    VB.NET-Quellcode

    1. <DesignerCategory("Code")> _
    2. Public Class MatrixForm
    3. '...
    @Xy8000 Kannst Du mal eine vollständige Klasse / Datei posten?
    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!
    @nafets Top. Genau das habe ich schon lange gesucht. Der Designer ignoriert nun diese Klasse, wodurch auch das Namespace nicht mehr über den Designer geöffnet wird.

    <Closed>
    Bilder
    • Capture.PNG

      12,78 kB, 273×343, 131 mal angesehen
    "Das Internet ist nur ein Hype" - Bill Gates