In Visual C++ MFC gibt es einen integrierten Mechanismus zum Festlegen der Menüelementstatus. Ich versuche, das Gleiche mit C# und einem WindowsForm-Objekt zu tun.Einstellen des Menüelementstatus auf einem MenuStrip
ich das gefunden, die nicht ganz das gleiche ist:
Grey out menustrip items when certain forms are open/active/focused
Hier ist meine Menüstruktur:
Also entschied ich mich, dies zu versuchen:
private void viewToolStripMenuView_Click(object sender, EventArgs e)
{
zoomExtentsToolStripMenuItem.Enabled = viewCtrl != null;
}
Es funktioniert irgendwie. Aber ich bin ein bisschen wählerisch. Ich kann das Menü mit dem Element angezeigt sehen aktiviert und dann Ich sehe es in deaktiviert ändern.
Was ist der richtige Weg, um die Menüelementzustände vor das Menü wird angezeigt? Ich weiß, das klingt wie ein einfaches Problem, aber ich kann nicht die entsprechende Methodik zu ON_UPDATE_COMMAND_UI finden.
Mögliche Duplikat [UI-Objekte in Windows Forms aktualisiert] (http://stackoverflow.com/questions/2405592/updating-ui-objects-in-windows-forms) –
@JohnnyMopp Das ist eine interessante Frage ist, und es sieht genauso aus, danke. Aber ich sehe keinen Hintergrund-Thread zum Aktualisieren der Benutzeroberfläche. Ich sollte in der Lage sein, es einfach als Enabled etc. zu setzen. Aber es ist die Auswahl der richtigen Event-Handler, um es zu tun. Es ist offensichtlich zu spät, es im Click-Event-Handler im Menü Ansicht zu tun. –