die Form so beenden, dass das Programm noch auf events reagieren kann

Hallo,

was passiert denn mit der Instanz deines Plugins in dem anderen Programm? Es sollte ja eigentlich so sein, dass diese Instanz so lange "lebt", wie das Ladeprogramm läuft. Damit wäre nämlich auch die ständige Verfügbarkeit des Plugins abgehakt. Deine Klasse, die da geladen wird, implementiert nur den benötigten Eventhandler. In diesem Event und auch im Konstruktor wird eine Form aufgerufen.

Was du da in Punkt 2. vorhast hört sich für mich recht kompliziert an. Eine zweite Instanz ist meiner Ansicht nach nicht notwendig; es müssen nur Plugin-Klasse und Form-Klasse unterschiedlich sein. Eine Steuerung mit Show und Hide ist damit auch nicht nötig.

Gruß
MCoder
 
hey,

der Anfang der Lebenszeit beginnt mit dem Öffnen des Tools(mein geladenes Plugin in diesem Programm=das Tool), und das Ende der Lebenszeit ist mit Schließen des Tools.
Der Benutzer öffnet das Tool, macht nur paar Einstellungen auf der Form und schließt das Fenster dann wieder)...Wenn der Benutzer vergisst das Tool zu schließen, dann bleibt das Fenster noch offen…also die Lebezeit(Anfang und Ende) hängt von dem Benutzer ab…

Das Event von dem ich gesprochen habe, wird auch vom Benutzer ausgelöst, aber dieses Event kommt von einem anderen Programm und nicht direkt von meinem Plugin! Deswegen muss mein Plugin im Hintergrund doch immer aktiv sein oder nicht…damit es jederzeit über den Event informiert werden kann? Das Tool(Instanz des Plugins von dem Programm) und das, was im Hintergrund(Instanz des Plugins beim windows Start) laufen soll, haben zwar dieselben Funktionen etc…aber die Instanz des Plugins, welche im Hintergrund laufen sollte, sollte die „Tool-Form“ nicht beeinflussen.

Was meintest du mit dem Satz „es müssen nur Plugin-Klasse und Form-Klasse unterschiedlich sein“…sorry bin in dem Gebiet „windows Programmierung“ echt noch ein Anfänger…also wunder dich nicht über die ein oder andere blöde Frage;)

Gruß
Maria1
 
Hallo,

ich hab mal ganz vereinfacht skizziert, wie ich mir das vorstellen würde:
C#:
public class CSPlugin
{
    public CSPlugin()
    {
        // TODO: Event abonnieren -> onToolEvent()

        onToolEvent(null, null); // Aufruf der Form bei Instanziierung von CSPlugin
    }
    
    public void onToolEvent(object sender, EventArgs e)
    {
        CSPluginForm plugin_form = new CSPluginForm();
        plugin_form.Show(); // oder plugin_form.ShowDialog(); als modaler Dialog
    }
}

internal class CSPluginForm : Form
{
    // TODO: Implementieren
}
Im Tool wird eine Instanz von CSPlugin erstellt (CSPlugin wäre die Klasse, die aus deiner DLL nach außen sichtbar ist). Mit dieser Instanz hast du nichts zu tun. Sie wird von Tool verwaltet, das auch ihre Lebenszeit bestimmt. Die Klasse CSPluginForm ist die Form mit den Einstellungen, die bei Bedarf - also zuerst beim Instanziieren und dann immer wenn das Event ausgelöst wird - aufgerufen wird.

Gruß
MCoder
 
Hey Vielen Dank für alles! Ich werde mit den Informationen die Ihr mir gegeben habt, auf jedenfall arbeiten....wenn ich noch fragen habe schreibe ich dann nochmal:)also bis dann..................

Gruß
maria1
 
Zurück