In einer Windows Forms-Anwendung ich habe die ContextMenuStrip-Eigenschaft auf einem TabControl.
- Wie kann ich sagen, den Benutzer auf eine Registerkarte, die das aktuell ausgewählte?
- Wie kann ich einschränken, das Kontext-Menü von der Anzeige nur dann, wenn der Obere Register-Teil mit der Bezeichnung geklickt wird, und nicht anderswo in der Registerkarte?
Nicht die Mühe, die Einstellung der contextMenuStrip-Eigenschaft des TabControl-Steuerelement. Vielmehr ist es auf diese Weise. Haken bis zu dem tabControl-das Mausklick-Ereignis, und dann manuell zeigen Sie das Kontextmenü. Dies wird nur ausgelöst, wenn das Register selbst auf top geklickt, nicht die eigentliche Seite. Wenn Sie klicken Sie auf die Seite, dann wird das tabControl nicht erhalten klicken Sie auf die Veranstaltung, die TabPage hat. Einige code:
Opening-event-dem Kontext-Menü kann verwendet werden, um beide Probleme lösen
Etwas spät, aber ich habe eine Lösung für den ersten Teil deiner Frage. Sie können herausfinden, welcher tab war mit der rechten Maustaste auf, indem Sie senden ein Klick auf die linke Maustaste, um die Anwendung. Dieser wählt den tab, so können Sie jetzt verwenden Sie das TabControl-Steuerelement.SelectedTab-Eigenschaft, um die Registerkarte, die der Benutzer mit der rechten Maustaste angeklickt.
War ich auf der Suche nach einer Lösung für genau das gleiche problem.
Nach einem Test der beiden @ " nisar und @Bfreies Antworten kam ich zu diesem (den hatte ich auch TabControl` in einem Schaltschrank irgendwo in der Form):