Hi,
Ich stelle mal folgende Anregung - Struktur zur Diskussion:
Es gibt eine klasse die die Menüs verwaltet.
Diese hat 2 Container.
1. Menüs die offen sind.
2. Menüs die vorhanden sind.
Die vorhandenen Menüs können geöffnet werden, dann werden sie in beiden Containern aufbewahrt.
Bei der Aktualisierung werden alle offenen Menüs aktualisiert.
Wen man sie in der Reihenfolge Zeichnet und Events behandelt wie sie im Container 1. (Menüs die offen sind) liegen, kann man mehrere Menüs öffnen und übereinander legen und alles.
Voraussetzung ist eine Basisklasse für alle Menüs! Das hast du ja sinnvollerweise auch vor.
Die Menüs selber könnten ihrerseits Container einer Steuerelement-Basisklasse haben. Werden die Menüs refreshed oder gezeichnet tun sie selbiges mit ihren Steuerelementen.
Wird auf die Mens geklickt, prüft dieses allen in seinem Container Steuerelemente ob der Klick drauf ist.
Wenn ja passiert was.
Technisch noch angemerkt:
Eventuell lassen sich Callbacks mit Delegaten realisieren. C# ist nicht so meins.
So kann man dem Steuerelement wenn die Instanz erzeugt wird als Argument mitgeben was passieren soll. Das ist natürlich super für die spätere Nutzung.
Mag sein das die Zeigerarithmetik eine hübsche Menüverwaltung zulässt. Weiß nicht ob das eventuell in C# einen Hacken hat.
http://msdn.microsoft.com/de-de/library/y31yhkeb.aspx
... Nur als Anregung.