Bonjour,
J'ai une série de contrôles dans une Form qui ont pour "ContextMenuStrip" le même contextmenustrip :
Parmi les options de mon contextMenuStrip1, j'ai une entrée "Close".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 control1.ContextMenuStrip = contextMenuStrip1; control2.ContextMenuStrip = contextMenuStrip1;
Et j'aimerais qu'elle fasse disparaître le contrôle qui a provoqué l'affichage de mon contextMenuStrip1.
Donc click droit sur control1 > puis menu "Close" : je veux que control1 disparaisse.
Et click droit sur control2 > puis menu "Close" : je veux que control2 disparaisse.
Seulement, j'ai un problème : je n'arrive absolument pas à trouver quel est le contrôle qui a déclenché l'affichage mon mon contextmenustrip.
Voici ce que j'ai tenté :
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 private void closeToolStripMenuItem_Click(object sender, EventArgs e) { (((sender as ToolStripMenuItem).OwnerItem. as TabPage).Parent as TabControl).TabPages.Remove(sender as TabPage); }
Seulement, le "OwnerItem", c'est pas le contrôle qui a déclenché l'affichage du contextmenustrip, mais le menu lui-même. Et j'ai beau chercher à remonter le owner du owner du owner du... je n'arrive pas à retrouver mon contrôle.
Accessoirement, si vous savez comment faire apparaître une croix pour fermer un onglet dans un TabControl, je suis preneur, car à la base, c'est pour fermer des onglets, et un clic sur un croix sera toujours mieux qu'un clic droit au milieu de la tabpage...
Partager