Hi zusammen,
vielleicht stelle ich jetzt grade ne total dumme Frage, ich machs aber trotzdem:
Ich habe einen Satz von MenuItems die ich an mehreren Stellen verwenden möchten. Zum Beispiel in einem Kontextmenu und einem MenuStrip. Ich habe nun eine Liste in der alle MenuItems drinstecken und jedes Control was dieses Satz von MenuItems braucht kann die von mir in der Liste implementierte Methode "ToMenuItemArray" aufrufen (um dann dass erhaltene Array in seinem eigenen Menu and die Methode AddRange zu übergeben).
Soweit so gut. Nach einigem debuggen habe ich aber folgendes festgestellt:
Sind meine MenuItems schon in einem ContextMenu eingebaut und ich füge sie in einem MenuStrip eines anderen Controls hinzu, werden Sie aus dem ContextMenu gelöscht. Mein Fazit: MenuItems dürfen nur Mitglied eines Menus sein.
Also bin ich nun in meine "ToMenuItemArray" Methode gegangen und habe mit dem Array-Methoden "CopyTo" und "Clone" rumgespielt um festzustellen, dass die Arrays nur referenzen kopieren und nicht die MenuItem-Objekte doppelt im Speicher anlegen. Die Idee war aber, ein neues Array mit identische Objekten anzulegen. Das hat natürlich zur Folge, dass ich nach wie vor meine MenuItems nur in einem der beiden Menus auftauchen. Nun folgende Fragen dazu:
1) Ist das ganze Vorgehen überhaupt sinnvoll? Macht man das wirklich so, dass die MenuItems kopiert werden?
2) Wie kopiere ich ein Array physikalisch? Google spukt mir immer nur Beiträge (ala Galileo) aus, die mir erklären dass die Methode CopyTo nur Referenzen kopiert (wo ich aber schon selber drauf gekommen bin

...
Vielen Dank schon mal im voraus
Gruss Dave