controls ohne große Änderung auf andere Form auslagern?
-
Ist es möglich, dass wenn ich controls auf eine neue Form verschiebe, ich mit den controls arbeiten kann, als seien sie noch auf der alten Form?
Hintergrund ist, dass ich ein Plugin für ein anderes Programm schreibe. Die Form meines Plugins wird direkt in einem Teil des Anwedungsfensters geladen. Auf die Host-Anwendung habe ich keinen Zugriff.
Ich wollte also aus Platzgründen die Steuerelemente auf die Neue Form auslagern. Der Punkt ist nur, dass der Code der Anwedung aus dort bleiben muss wo er ist. Wie mach ich das jetzt, dass meine alte klasse denkt, alle Controls ständen ihr noch zur verfügung, obwohl sie auf der neuen Form sind?
-
Es ist sehr wirr, was du schreibst. Benutz halt "Layouts" (FlowContainter usw. in WinForms, entsprechende Layout Container in WPF), damit dein Fenster möglichst unabhängig von der Größe gut ausschaut.
Warum muss irgendeine alte Klasse irgendwas denken?
-
Ja stimmt. Ist auch nicht ganz so leicht zu erklären. Ich bring mal ein Beispiel. Stellt dir vor du machst ein neues Projekt in VS auf und füllst ne Form mit richtig vielen Controls und Funktionen.
Jetzt überlegst du dir: hmmm, die controls sollen lieber auf eine andere Form. Du fügst dann halt eine neue Form hinzu und machst Strg X und Strg V auf die neue Form.
Jetzt meckert der Kompiler natürlich, weil die Funktionen ihre Controls nicht mehr finden. Was ich jetzt möchte ist, dass obwohl die Controls auf einer neuen Form sind, sie von den Funktionen immer weiterhin normal genutzt werden können.
-
Fehldesign. Für so etwas nutzt man Dinge wie Custom Controls.
-
Also? Lösungsvorschlag? Abgesehen davon?
-
c#schilp schrieb:
Also? Lösungsvorschlag? Abgesehen davon?
Der Lösungsvorschlag ist es die gemeinsam benutzen Controls und die entsprechende Logik in ein Custom Control zu verpacken. Dies kannst du dann auf beliebigen Fenstern wieder verwerten.