Auf Events vor der Laufzeit reagieren

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Sakeco.

    Auf Events vor der Laufzeit reagieren

    Hallo,
    ich erstelle gerade ein Benutzersteuerelement. Bei "professionellen" Steuerelementen habe ich gesehen, dass sie im Designer(also nicht zur Laufzeit) über ein Kontextmenü bearbeitet werden können, d.h. man konnte(z.B. bei einem Coontainer) Controls dynamisch hinzufügen, entfernen und Methoden aufrufen. Wie kann ich das realisieren, also im Kontextmenü(Im Designer) einen Eintrag erzeugen und dementsprechend auf das Ereignis reagieren, wenn der Nutzer darauf klickt? Kann ich auch auf das Click-Ereignis eines Buttons reagieren? Ich meine natürlich, wenn das Benutzersteuerelement kompiliert und eingebunden wurde(ich also die Anwendung designe, nicht das Steuerelement selbst).
    hier für ein Container-Steuerelement:
    support.microsoft.com/kb/322222
    und bei dem solltest du dir zwar alles durchlesen, aber interessant für dich ist dabei "Designer Verbs and Markup":
    msdn.microsoft.com/en-us/magazine/cc164048.aspx
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Danke, die Unterpunkte werden angelegt und Events kann ich auch abfangen. Allerdings habe ich nun ein anderes Problem.

    Ich füge den Unterpunkt hinzu...

    VB.NET-Quellcode

    1. v.Add(New DesignerVerb("Add page", AddressOf AddPage))


    ...kann allerdings kann ich nur Methoden aus der Designerklasse aufrufen, muss aber die Methoden in der Klasse des Steuerelementes aufrufen. Denn ich kann keine Controls aus der Desingerklasse heraus erstellen, dann bekomme ich nähmlich die Meldung:

    Der Verweis auf einen nicht freigegebenen Member erfordert einen Objektverweis
    Und wenn ich nun eine neue Instanz der Hauptklasse erstelle, kann ich zwar auf deren Methoden zugreifen, aber dann erscheinen die Controls nicht im eigentlichen Steuerelement(da es eine andere Instanz als die ist, die in der Form angezeigt wird).