Hallo,
ich erzeuge Einträge für ein Kontextmenü auf diese Weise:
base.AppendSubMenuitem MenuBearbeitenAusschneiden
base.AppendSubMenuitem MenuBearbeitenKopieren
base.AppendSubMenuitem MenuBearbeitenEinfuegen
Jetzt möchte ich jedoch manche Einträge unter Umständen deaktivieren, wenn die Funktion gerade nicht zur Verfügung steht. Leider finde ich dazu kein Beispiel.
diese Kontextmenüs die in einem Ereigniss/Event erzeugt werden
als MenuBearbeitenAusschneiden.Enabled = False setzen oder gar nicht erst hinzu fügen.
Ich meine die beiden Events kommen immer zusammen, erst das Menu erzeugen und dann die Verarbeitung.
Bei den anderen Menüs (MenuBar) gab es da nicht ein EnabledMenuItems Ereigniss wo man das machen kann?
Ich finde in der Language reference nur dieses:
// Add some items
base.Add(New MenuItem(“Test 1” )
base.Add(New MenuItem(“Test 2”))
base.Add(New MenuItem(“Test 3”))
// Add a Separator
base.Add(New MenuItem(MenuItem.TextSeparator))
Ich sehe nicht, wie ich da eine Referenz auf den neu hinzugefügten Eintrag bekomme oder in einer Variable sichern kann.
Es geht um eine Funktion, die ich nur manchmal anbiete. Weglassen finde ich keine gute Option. Der Anwender soll erkennen, dass die Funktion grundsätzlich an dieser Stelle existiert, nur momentan nicht.
Var a As MenuItem = MenuBearbeitenAusschneiden.Clone // Mac wirft hier ohne .Clone eine Exception
If xy = False Then a.Enabled = False
base.AppendSubMenuItem a