Plugin GUI in Application einbinden

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Plugin GUI in Application einbinden

    Guten Abend,

    ich stehe gerade vor einem Problem. Ich habe eine Plugin Schnittstelle die auch erstmal so funktioniert wie sie soll. Nun haben einige Plugins auch eine GUI Überfläche für Einstellungen usw.
    Aber wie integriere ich die in die Haupt Application? Wenn ich ein Plugin erstelle habe ich erstmal eine Form wo ich die Controls drauf positioniere usw. Jedoch kann ich dieses Control-Array ja nicht einfach in die Hauptapplication integrieren, weil ja die ganzen Handler nicht mitgenommen werden.

    Vlt. habe ich auch ein Denkfehler und man macht das ganz anders. Aber aufjedenfall möchte ich NICHT die Controls in der Plugin DLL manuell erstellen und Positionieren, sondern in der VB IDE den Designer benutzen.

    Gruß Dodo
    ich kenn mich nicht gut aus, aber normal bleibt das PlugIn-Gui im PlugIn.
    also im PlugIn gibts eine Methode, die ein PlugIn-Form öffnet, und das Form macht irgendwas.

    Ist immer vollständig die Frage nach dem Interface: Ein PlugIn kann nur das bedienen, was dem HauptProgramm ebenfalls bekann gemacht ist, nämlich durch das Interface.

    Natürlich sind auch Interface-Methoden denkbar wie GibMirDeineControls() As List(Of Control) - und das würde auch gehen, dass solche Controls dann runterfliegen von einem verborgenen PluginForm, und auftauchen in der Hauptanwendung, und die Events und Kram wirken aber weiterhin ins PlugIn-Form.

    Aber solch glaub schon recht aussergewöhnlich.
    Ich persönlich habe das Problem unter WPF gelöst in dem ich eine GetView-Methode in das Plugininterface eingabaut habe, welche mir dann den View des Controls bereitgestellt hat. Diesen habe ich in einem View meiner Applikation angezeigt. So bleibt das ViewModel und der eigentliche View im Plugin, aber die anzeige des Views landet im Hauptprogramm.

    Du scheinst in deinem Fall Windows FOrms zu verwenden wenn ich dass richtig verstanden habe.
    Hier würde ich wie @ErfinderDesRades schon sagte zu einer Methode "Show" o.ä. greifen welche dann dem Plugin sagt jetzt seine "Hauptform" zu öffnen.
    Die Variante sich die Controls geben zu lassen und diese dann in seine Form zu integrieren finde ich persönlich eher unschön.
    lg.

    LucaWelker
    Wie wäre es mit einem UserControl, dass Du als einziges Dontrol in einem ansonsten leeren Dialog anzeigst?
    Ggf. einen OK- und einen Cancel-Button unren rechts mit entsprechender Anchor-Property.
    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!