Ich möchte in meinen Anwendungen die Untermenüs eines Hauptmenüs (MenuStrip) zur Laufzeit wahlweise abkoppeln, frei im Vordergrund verschieben und jederzeit Einträge daraus anwählen können. Lässt sich das irgendwie mit den Standardmenüs der Windows Forms realisieren oder muss ich mir dazu ein eigenes Steuerelement basteln? Ich habe daran gedacht, die Untermenüanwahl zu überwachen. Wird dabei die mittlere Maustaste gedrückt, wird das Menü abgedockt. Dazu wird intern ein neues Kontextmenü (ContextMenuStrip) aufgebaut, das dem ursprünglichen Untermenü entspricht. Wie lasse ich dieses Kontextmenü aber dann frei platzieren und verschieben, wie halte ich es dauerhaft im Vordergrund und wie verhindere ich, dass bei der nächsten Menüanwahl ein weiteres Kontextmenü geöffnet wird? Oder gibt es bereits entsprechende Steuerelemente, die diese Funktion bieten?
Das ist ein ungewöhnlicher Ansatz den Du da implementieren willst :-) Mir ist kein Menü-Control eines Drittherstellers bekannt, welches diese Funktion bereitstellt.
Um das Untermenü "abzudocken", müsstest Du die Drag & Drop-Events abfangen. Das wird in diesem Thread hier diskutiert: http://vbcity.com/forums/t/134343.aspx
Ich weiss ehrlich gesagt nicht, ob es möglich ist das ContextMenuStrip die ganze Zeit im Vordergrund zu halten. Ich würde mal nein sagen.
Was Du letztendlich haben willst, sind ja sogenannte "Dockable/Floatable Windows". Hierfür würden sich imho eher die Toolstrips anbieten.
Du müsstest die Toolstrips halt dynamisch erzeugen oder unsichtbar lassen. Beim Abkoppeln des Menüs, dann an die Mausposition (beim Loslassen der Maus) das Toolstrip sichtbar machen. Das könnte vielleicht funktionieren.
Danke für die Hinweise. Das Toolstrip-Steuerelement eignet sich tatsächlich für meine Zwecke, da es frei in einem Fenster platzierbar ist und darüber auch permanent im Vordergrund gehalten werden kann :-). Außerdem kann ich die Inhalte dynamisch aufbauen und wahlweise auch Text und Symbole anzeigen lassen. Das erwähnte Abdocken ist zwar interessant, kommt bei mir aber nicht in Frage, da die Inhalte ja nur im Menü und nicht als Toolstrip angezeigt werden.