Announcement

Collapse
No announcement yet.

Konstruktor für den Typ "wd.MVC_RootClasses.dll.Views.ViewRoot" wurde nicht gefunden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Konstruktor für den Typ "wd.MVC_RootClasses.dll.Views.ViewRoot" wurde nicht gefunden

    Hallo zusammen,

    ich erstelle gerade mit VS2012 Framework 4.5 und Windows Forms ein paar Basisklassen für mich und ein Testprogramm dafür und bekomme nun den Fehler Der Konstruktor für den Typ "wd.MVC_RootClasses.dll.Views.ViewRoot" wurde nicht gefunden. und zum einen weiß ich nicht warum ich den Fehler plötzlich bekomme und zum anderen kann ich mit dem Lösungsvorschlag von Microsoft nicht wirklich etwas anfangen. Ich hoffe es kann mir einer von euch einen Tip geben wie ich das Problem gelöst bekomme den ich auch verstehe.

    In meinem Projekt gibt es eine Klasse wd.MVC_RootClasses.dll.Views.ViewRoot welche von System.Windows.Forms.Form erbt. In meinem Testprogramm habe ich eine Klasse wd.MVC_Demo.exe.Views.Test_View welche wiederum von wd.MVC_RootClasses.dll.Views.ViewRoot erbt. Die ersten Tests haben auch ganz gut ausgesehen, aber kurz nachdem ich in die wd.MVC_RootClasses.dll.Views.ViewRoot einen EventHandler eingebaut habe ist das Problem aufgetreten, obwohl das Programm an sich noch gelaufen ist kann ich in der Test_View nicht mehr in den Designmodus wechseln.

    Da ich einen generellen Konstruktionsfehler nicht ausschließen kann habe ich mal das ganze Projekt angehängt.
    Es tut sich nicht wirklich viel, es gibt einen Beenden Button und der tut auch genau das was er soll.

    Gruß Womble

    Das Projekt: wd.MVC_Demo.zip

  • #2
    Du hast es zwar nicht explizit gesagt aber ich vermute du sprichst von einem Problem mit dem Winforms Designer nicht von irgendwas mit deiner Anwendung zur Laufzeit oder?
    Edit : Ignorier den Satz ich hab nur nicht richtig gelesen.

    Wenn dem so ist ist das ein prinzipielles Problem mit dem Winforms Designer. Der instanziiert die Vorfahrklasse deiner zu designenden Form (die aktuelle Form ist ja eventuell gar nicht kompilierbar der Vorfahr muss aber) um dann die zusätzlichen Sachen aus der InitializeComponents Methode hinzu zu lügen. Die Vorfahrklasse muß also zwingend einen öffentlichen Standardkonstruktor haben (sowie Form, Usercontrol etc.) damit der Winforms Designer die instanziieren kann.

    Comment


    • #3
      Also in meinem jugendlichen Leichtsinn hätte ich behauptet der Standardkonstruktor ist öffentlich verfügbar.

      [highlight=C#]
      namespace wd.MVC_RootClasses.dll.Views
      {
      public partial class ViewRoot : System.Windows.Forms.Form
      {
      #region Constructors

      public ViewRoot(ControllerRoot Controller)
      : base()
      {
      this.Controller = Controller;
      // Remove last set handler for Ucomm
      // Den letzten behandler für Userkommandos entfernen
      UcommEvent -= new UcommHandler(this.Controller.FireUcomm);
      // Set handler for user command
      // Einen Behandler für das Userkommando setzen
      UcommEvent += new UcommHandler(this.Controller.FireUcomm);
      }
      [/highlight]

      Comment


      • #4
        Ich spreche von einem Standardkonstruktor, also einen ohne Parameter. Woher sollte der WinformsDesigner einen Controller nehmen um deinen gezeigten Constructor aufzurufen?

        Comment


        • #5
          Stimmt, jetzt geht es wieder.

          Vielen Dank.

          Comment

          Working...
          X