Bonjour,
Je suis débutant en C# et j'ai un probleme concernant la remonté d'arborescence.
En gros J'ai un objet de type Button, quand je fais un clic droit dessus j'ouvre un ContextMenuItem dans lequel se trouve plusieurs ToolStripMenuItem ainsi que leurs sous menu.
Voici la structure de mes items :
ContextMenuStrip -> ToolStripMenuItem1 -> ToolStripMenuItem2 -> ToolStripMenuItem3
Depuis Mon ToolStrip1 j'arrive à recuperer les informations de mon objet button :
private void ToolStripMenuItem1_Click(object sender, EventArgs e)
{
ToolStripMenuItem toto = sender as ToolStripMenuItem;
ContextMenuStrip id = toto.Owner as ContextMenuStrip;
Button id_boutton = id.SourceControl as Button;
MessageBox.Show("c'est l'icone numéro : " + id_boutton.Name.ToString());
}
Mon problème maintenant c'est que je veux retrouver les mêmes infos depuis un des sous menus(le 3ème) de type ToolStripMenuItem.
private void ToolStripMenuItem3_Click(object sender, EventArgs e)
{
ToolStripMenuItem toto = sender as ToolStripMenuItem;
?????
}
J'ai essayé de faire ceci :
je me suis dit qu'il me suffisait de caster le toto.OwnerItem.OwnerItem.Owner de mon ToolStripMenuItem3 en ContextMenuStrip, mais ca marche pas.
private void ToolStripMenuItem3_Click(object sender, EventArgs e)
{
ToolStripMenuItem toto = sender as ToolStripMenuItem;
ToolStripMenuItem tata = toto.OwnerItem as ToolStripMenuItem; // si j'affiche tata j'obtiens le ToolStrip2
ToolStripMenuItem titi = tata.OwnerItem as ToolStripMenuItem; // Si j'affiche titi j'obtiens le ToolStrip1
ContextMenuStrip tutu = toto.OwnerItem.OwnerItem.Owner as ContextMenuStrip;
//ContextMenuStrip tutu = titi.Owner as ContextMenuStrip;
Button id_boutton = tutu.SourceControl as Button;
MessageBox.Show("c'est l'icone numéro : " + id_boutton.Name.ToString());
}
Dans le debug j'obtiens :
titi.Owner est bien un ContextMenuStrip
tutu est bien un ContextMenuStrip
par contre tutu.SourceControl = null donc mon id_boutton = null
Merci
Partager