Ich portiere eine MFC-Anwendung in .NET WinForms. In der MFC-Anwendung können Sie mit der rechten Maustaste auf ein Menü oder einen Kontextmenüeintrag klicken, und wir zeigen ein anderes Kontextmenü mit Diagnose- und Konfigurationselementen. Ich versuche, diese Funktionalität in .NET zu portieren, aber ich habe Probleme.So zeigen Sie ein Kontextmenü an, wenn Sie mit der rechten Maustaste auf ein Menüelement klicken
Ich konnte den Rechtsklick erfassen, deaktivieren Sie den Klick des zugrunde liegenden Menüs und Pop-up ein Kontextmenü an der richtigen Stelle, aber das ursprüngliche Menü verschwindet, sobald es den Fokus verliert.
In MFC, zeigen wir das neue Kontextmenü von TrackPopupMenuEx mit dem TPM_RECURSE Flag aufrufen.
ContextMenu und der neuer Context Klassen in .NET nur ein Methode zeigen. Weiß jemand, wie man das in .NET macht?
EDIT
ich versucht habe TrackPopupMenuEx durch eine p mit/aufrufen, aber das schränkt Sie ein ContextMenu anstelle eines Context verwendet, die in unserer Anwendung deplatziert aussieht. Es funktioniert auch immer noch nicht richtig. Es funktioniert nicht mit dem neuen MenuStrip und ContextMenuStrip.
Ich habe auch versucht, ToolStripMenuItem Unterklasse zu sehen, ob ich ein Kontextmenü hinzufügen kann. Das funktioniert für MenuStrip, aber ContextMenuStrip ermöglicht weiterhin das Durchlaufen der Rechtsklickereignisse als Klicks.
Warum nicht einfach ein Untermenü verwenden, so dass, wenn Sie über den Menüpunkt schweben, ist es mehr Artikel zeigt? –
Viele unserer Menüs haben bereits Untermenüs. Wir verwenden diese Funktion für Administratoren, um die Sicherheit von Menüs anzupassen. Klicken Sie zum Beispiel mit der rechten Maustaste auf ein Menü und setzen Sie es auf deaktiviert. Dies wird in der Datenbank gespeichert und wirkt sich auf alle Benutzer aus. –