Laden...

MenuStrip in vererbten Fenstern funktioniert nicht

Erstellt von diana vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.560 Views
D
diana Themenstarter:in
586 Beiträge seit 2004
vor 9 Jahren
MenuStrip in vererbten Fenstern funktioniert nicht

Hallo,

Problematik:
es besteht ein Hauptfenster (0) mit einigen Einstellungen und von diesem wurden grundsätzlich alle spezifischen Fenster (1) abgeleitet. Nun wurde von dem spezifischen Fenster noch ein Fenster (2) abgeleitet und hier lässt sich einfach der Menustrip nicht um einen weiteren Menueintrag erweitern, wenn ich den selben Code in das Fenster (1) einfüge, dann wird mein Menüeintrag erstellt. Grundsätzlich hatte ich bis jetzt keine Probleme mit dem MenuStrip usw. auch dynamisch erstellte wurden korrekt implementiert. Noch eins ich versuche im Fenster (2) per:

this.Ms.Items.AddRange(new ToolStripItem[] { tmnuEintrag });

den MenuStrip zu erweitern. Ms ist in dem Fall eine Property die den MenuStrip darstellt, wie schon erwähnt im Fenster (1) funktioniert das auch über die Property selbst.

Hintergrund:
Habe alle Menüs meiner Anwendungen umstellen müssen von MainMenu auf MenuStrip. Wenn jetzt aber diese dynamischen Anpassungen, die ja von Projekt zu Projekt verschieden sein können, nicht funktionieren, dann ist eine Umstellung total umsonst....

Habt ihr eine Idee?

:::

4.931 Beiträge seit 2008
vor 9 Jahren

Hallo,

ist denn im Debugger-Watch der Menüeintrag (nach der Code-Zeile) vorhanden und er wird nur nicht dargestellt?
Und wo steht der Code? Im Konstruktor?

D
diana Themenstarter:in
586 Beiträge seit 2004
vor 9 Jahren

Beim Debuggen wird der Eintrag zum menustrip hinzugefügt, also alles io. Er wird "nur" nicht angezeigt.
Das Hinzufügen passiert nach InitializeComponents, hab es aber auch schon an anderer Stelle versucht, das Gleiche...

:::

4.931 Beiträge seit 2008
vor 9 Jahren

That's really strange...

Und wenn du diese Form direkt von deinem "Hauptfenster" ableitest, dann wird es angezeigt?

D
diana Themenstarter:in
586 Beiträge seit 2004
vor 9 Jahren

Ja, ich habe einfach im Fenster (1) alles so codiert, dass es funktioniert und diesen Code ins Fenster (2) kopiert und schon wird der Menüeintrag nicht mehr angezeigt. Kann mir einfach keinen Reim drauf machen 😦
Mehr als:


 this.Ms.Items.AddRange(new ToolStripItem[] { tmnuÉintrag });
 tmnuEintrag.MergeIndex = 2;
 tmnuEintrag.MergeAction = MergeAction.Replace; //MergeAction.MachOnly geht auch nicht
 tmnuEintrag.Text = "&Test";

ist es ja eben nicht, sodass ich auch einfach nicht weiter weiß, wie und was das Problem sein soll.

:::

D
diana Themenstarter:in
586 Beiträge seit 2004
vor 9 Jahren

Hab jetzt noch mal etwas recherchiert, aber man findet diesbezüglich nichts, außer, dass im Designer vermehrt Probleme mit Controls in vererbten Fenstern auftreten können, aber der Designer hat doch in diesem Fall gar nichts damit zutun. Ich habe die InitializeComponents total außen vor gelassen, was ja bis jetzt auch funktioniert hat...

:::

49.485 Beiträge seit 2005
vor 9 Jahren

Hallo diana,

mach mal ein minimales Beispiel (am besten ganz ohne Designer), nur die Basisklasse mit einem Menüeintrag und das abgeleitet Form mit einem zusätzlichen Eintrag. Geht es dann? Wenn ja, siehe [Tutorial] Vertrackte Fehler durch Vergleich von echtem Projekt mit minimalem Testprojekt finden. Wenn nein, poste den Quellcode mal hier. Dürften ja nicht mehr als ca. 50 Zeilen sein.

herbivore

D
diana Themenstarter:in
586 Beiträge seit 2004
vor 9 Jahren

Habe mir ein Testprojekt gestrickt und zweimal abgeleitet und Code reinkopiert, funktioniert 😦 Normalerweise versuche ich das mit dem kleinen Testprojekt auch immer mal, nur hier habe ich den Wald vor lauter Bäumen nicht mehr gesehen und da der Code in mehreren anderen Fenstern funktioniert hat, konnte für mich hier nur ein Bug oder eine falsche Programmierung Schuld sein. So da werd ich mir das ganze mal zu Gemüte führen und nacheinander auskommentieren... 😦((

:::