2010-03-20 17 views
6

Ich beginne mein erstes C# -Projekt, und ich möchte einen "Formular-Designer" (wie der in VS) machen.Wie kann ich meinen eigenen Formular-Designer erstellen?

Die Idee ist, es wird einen visuellen Formular-Designer mit einer begrenzten Toolbox geben, die Python-Code (später mehr) erzeugen wird, um das gleiche Formular zu erstellen.

Problem ist, ich habe keine Ahnung, wie man überhaupt anfängt. Zuallererst habe ich den Formular-Designer in VS: Wie mache ich eine "Form-in-Form"?

Weiter ... Ich habe keine Ahnung, wie kompliziert das sein wird. Ich nehme an, ich könnte neben jedem Steuerelement, das auf dem Formular erstellt wurde, kleine Kästchen erscheinen lassen, um die Größe zu ändern und um ein Textfeld anzuzeigen, wenn man doppelt darauf klickt oder etwas, um den Text darin zu ändern ... Dinge wie diese.

Also eine andere Sache, die ich gerne wissen möchte, ist diese:
Ich habe Programmiererfahrung in C und C++, ich habe PHP für eine Reihe von Jahren gemacht und bin mit Python seit kurzem. Ich habe Formulare in VB6 dynamisch generiert. Ist mir dieses Erlebnis angesichts dieses Erlebnisses über den Kopf gewachsen?

+0

Beschreiben Sie ein C# Laufzeitprojekt, das eine Benutzeroberfläche zum Erstellen von WinForms simuliert, die Sie dann "unter die Haube" in Python übersetzen? Oder sprechen Sie von einer Design-Time UI? – BillW

+0

Der erste, denke ich. –

Antwort

5

this sieht aus wie ein wirklich guter Anfang. Es hat ein gutes Beispiel, um loszulegen. Sie können sogar seine Quelle herunterladen (Registrierung erforderlich).

+0

Großartig, ich werde mir diesen Code ansehen.Ich bin mir sicher, dass ich in der Lage sein werde, es herauszufinden - danke –

3

Es klingt als ob Sie wissen, dass es für einen C# First-Timer nicht trivial ist. Wenn Sie es so einfach halten, klingt es, als ob Sie in die richtige Richtung gehen (obwohl ein webbasierter Formulardesigner einfacher sein könnte).

SharpDevelop wäre ein Beispiel für eine voll funktionsfähige IDE, die wiederverwendet werden kann, aber das ist weit übertrieben.

Viel Glück!

+0

Irgendeine Idee, wie ich ein Formular in einer Form zeichnen würde, wie in der VS-Formular-Designer? Im Moment spiele ich mit der Idee, ein MDI Elternfenster zu haben und untergeordnete Fenster "editierbar" zu machen ... was funktionieren könnte Ich nehme an, –

+0

@Carson der VS Form Designer erlaubt es Ihnen nicht, ein Formular visuell innerhalb eines anderen zu platzieren/zeichnen Formular bei Design-Time: Im MDI-Modell müssen Sie das MdiParent in Code setzen, und Sie werden das MdiChild-Formular nicht "sehen", bis Sie das Programm ausführen. UserControls und sogar "abgeleitete Steuerelemente", die von WinForms-Steuerelementen wie TreeView und ListView abstammen: Diese werden in der Design-Time-Toolbox angezeigt: aber nicht in Forms. Ja, zur Laufzeit können Sie jedoch MdiChild-Formulare, die Sie erstellt haben, frei bewegen. – BillW

+0

richtig, das habe ich mir gedacht. Sehen Sie sich den Link in der angenommenen Antwort an - das ist mein Ziel, es wurde in C# geschrieben - kann das mit dem Formular-Designer gemacht werden oder ist das nur ein MDI-Setup, das optimiert wurde? –

3

Für die meisten Leute, die in C# anfangen, wäre dieses Projekt zu viel. Mit Ihrem VB6-Hintergrund können Sie es jedoch möglicherweise abziehen.

Hier ist ein Hinweis: Der Windows Forms-Designer von Visual Studio zeichnet Steuerelemente auf seiner Oberfläche - indem er die Steuerelemente zum Zeichnen auffordert.

+0

Ich habe etwas ähnliches in VB6 getan, wo Formulare basierend auf Skripten generiert wurden. Ich war einfach verwirrt darüber, Formulare in andere Formen zu bringen - ich bin mir nicht ganz sicher, wie ich deinen letzten Punkt interpretiere, ich schätze, es wird klar werden, wenn ich ein wenig mehr über den Prozess verstehe. –

+0

@Carson: Sie haben gefragt, wie Sie auf dem Formular zeichnen - ich antwortete, dass Sie die Steuerelemente, die Sie auf dem Formular platzieren, erhalten sollten, um sich zu zeichnen. Machen Sie sich mit den Methoden und Eigenschaften der Klasse 'Control' vertraut. –

+0

Okay ich werde, danke für den Rat –

Verwandte Themen