zusätzliches TabPage per dll

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von ichwars.

    Also.
    Ich gehe davon aus, dass Dein Hauptfenster über ein TabCtrl verfügt.
    Füge Deinem Projekt eine Assembly hinzu.
    Füge dieser Assembly ein UserCtrl hinzu,
    füge diesem UserCtrl Deine Steuerelemente hinzu.
    Compiliere das ganze.
    Nun müsste, wenn Du im Hauptfenster die Toolbox anwählst, das Ctrl in Deiner Assembly angezeigt werden.
    Zieh es in einen freien Tab und fertig.
    Um die Events musst Du Dich natürlich noch separat kümmern.
    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!
    nein irgend wie nicht ganz, oder ich habs falsch verstanden.

    Die neue TabPage soll ja über ein Plugin erstellt werden also nur sichtbar sein wenn ich dieses Plugin auch im Hauptprogramm lade, bzw. es per dll zum Hauptprogramm hinzufüge.
    Müssen wir erst mal abklären.
    Soll es genügen, dass die DLL vorhanden ist, um den Tab zu erstellen?
    oder
    Gibt es im Hauptprogramm ein Event, der das Anlegen eines Tabs organisiert?
    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!
    Es soll genügen wenn die dll vorhanden ist.

    EDIT:
    geladen werden die Plugins bei mir folgender maßen:

    VB.NET-Quellcode

    1. Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. Me.filterPluginConn = New FilterPluginConnection
    3. Me.filterPluginConn.LoadPlugins()
    4. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ichwars“ ()

    Nun.
    Da muss ja im Hauptprogramm trotzdem z.B. bei Form_Load etwas getan werden.
    Nachsehen ob vorhanden,
    Assemply dynamisch laden,
    Code ausführen.
    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!
    Wenn das alleas Dein Code ist, mach doch

    VB.NET-Quellcode

    1. Me.filterPluginConn = New FilterPluginConnection

    =>

    VB.NET-Quellcode

    1. Me.filterPluginConn = New FilterPluginConnection(MyTabCtrl)

    und lass die DLL einen neuen Tab anlegen
    ODER
    =>

    VB.NET-Quellcode

    1. NewTab = MyTabCtrl.CreateNewTab() ' da muss natürlich der richtige Code stehen)
    2. Me.filterPluginConn = New FilterPluginConnection(NewTab)
    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!