C# - UserControl-Vererbung
Arbeiten mit VS.NET 2008, output type Class Library, Target Framework .NET 2.0
Habe ich mit einem vereinfachten Szenario, diese Frage zu stellen.
Ich habe eine Button
Benutzer-Steuerung ein einfaches Bedienfeld mit einer einzigen großen Taste auf Sie.
Ich möchte erstellen Sie eine RedButton
Kontrolle erstreckt Button
, und ebenso ein GreenButton
.
z.B. Class RedButton : Button
Ideal, wenn ich mich öffne RedButton
's designer sehe ich den button, den ich in Button
und in der Lage sein, um es zu ändern, zum Beispiel machen es Rot, oder ändern Sie schriftart, etc.
Habe ich versucht, das zu tun dieses eine mal, aber wenn ich öffnen Sie die RedButton
's designer, bekomme ich nur ein Haufen Fehler.
In diesem Fall, tun alle diese Arbeit programmatisch ist keine option für uns, wie im realen Fall würde ein Schmerz sein.
Könnte jemand etwas Licht in diese Schuppen?
Dank Sehr Viel.
Hat Ihre Frage schon beantwortet?
InformationsquelleAutor | 2008-12-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ehrlich gesagt, dein Beispiel sollte funktionieren. Stellen Sie lediglich sicher, dass Sie einen default-Konstruktor für die abgeleitete Klasse. Auch sicherstellen, dass Sie verwenden Sie keine generische controls wie die designer haben keine Ahnung, wie das erstellen einer Instanz.
InformationsquelleAutor Brian Rudolph
Ist Ihre Montage-setup Verzögerung unterzeichnet? Suchen Sie für die Verzögerung der Unterzeichnung-Attribut als auch das Kontrollkästchen in der Projekt-Eigenschaften. Ich habe gesehen, Verzögerung der Unterzeichnung verursachen diese Art von problem mit VS2005, vielleicht noch ein problem in VS2008.
InformationsquelleAutor Brian Ensink
Musste ich den Umgang mit diesem problem seit Jahren an einer alten Firma. Ich recherchierte ein wenig zurück dann. Ich glaube nicht, dass es eine Lösung für dieses.
Ich weiß nicht, wie viel Sie wollen, erweitern Sie die Basis-Klasse in Ihrem realen Beispiel, aber die änderungen, die Sie erwähnt in Ihrem Beispiel wäre trivial. Nur so etwas wie
In der Realität, wahrscheinlich was auch immer änderungen, die Sie vornehmen müssen, um die Schaltfläche könnte in ein paar Minuten erledigt. Es ist bedauerlich, dass dies sein wird ein paar Minuten jedes mal, die Sie benötigen, zu Erben, eine neue Steuerung, aber ich denke, es ist die einzige option
InformationsquelleAutor Jacob Adams
Wenn die Kontrolle, die Sie Erben, ist aus einer DLL und nicht eine weitere Klasse in die Lösung, dann Ihre designer machen die geerbte Kontrolle richtig. Meine Vermutung ist, dass die VS Design-Ansicht muss die DLL ziehen Sie das Steuerelement. Möglicherweise gibt es andere Möglichkeiten, um diese als gut.
InformationsquelleAutor nc.
Da VS.NET 2008 die Wurzel-designer in der Lage ist, zu präsentieren "Bündel von Fehlern", wie Sie erwähnt. Im Allgemeinen das beschriebene Szenario sollte "einfach funktionieren".
Welche Fehler sind Sie konfrontiert?
InformationsquelleAutor Chris Richner
Diesem Beispiel Folgen, wenn Sie nicht bereits:
dann im XAML statt
Starten/beenden Sie Ihre XAML-Datei mit
Beachten Sie, dass es okay ist, Erben von etwas, das in einem anderen Namensraum, obwohl Sie nicht definieren Sie den namespace noch. Beispiel:
InformationsquelleAutor AndyClaw