C# 查找动态创建的菜单项的子菜单
请看这张图片 我有一个带有银行项目的菜单条,它动态创建了子菜单,每个子菜单都有付款和存款,每个付款和现金都有支票和现金 如果我点击SBI中的现金->存款->现金,它应该说它来自哪里,因为我所有的银行都有相同的表格,请告诉ne我如何找到它 动态创建的菜单C# 查找动态创建的菜单项的子菜单,c#,.net,winforms,c#-4.0,dynamic,C#,.net,Winforms,C# 4.0,Dynamic,请看这张图片 我有一个带有银行项目的菜单条,它动态创建了子菜单,每个子菜单都有付款和存款,每个付款和现金都有支票和现金 如果我点击SBI中的现金->存款->现金,它应该说它来自哪里,因为我所有的银行都有相同的表格,请告诉ne我如何找到它 动态创建的菜单 ToolStripMenuItem bankname = new ToolStripMenuItem(dr["bankabbr"].ToString()); if (Convert.ToInt32(dr["isdeposi
ToolStripMenuItem bankname = new ToolStripMenuItem(dr["bankabbr"].ToString());
if (Convert.ToInt32(dr["isdeposit"]) == 1)
{
ToolStripMenuItem deposit = new ToolStripMenuItem("Deposit");
if (Convert.ToInt32(dr["hascashindeposit"]) == 1)
{
ToolStripMenuItem dcash = new ToolStripMenuItem("Cash");
dcash.Click += new EventHandler(dcash_Click);
deposit.DropDownItems.Add(dcash);
dcash.Name = "dcash";
}
if (Convert.ToInt32(dr["haschequeindeposit"]) == 1)
{
ToolStripMenuItem dcheque = new ToolStripMenuItem("Cheque");
dcheque.Click += new EventHandler(dcheque_Click);
deposit.DropDownItems.Add(dcheque);
}
bankname.DropDownItems.Add(deposit);
}
ToolStripMenuItem有一个名为OwnerItem的属性。你可以爬到一个已知的根项目上,或者直到你到达长条带并在途中收集你的项目名称
我假设你的根是一个工具条
使用您的示例将导致
路径[0]=现金
路径[1]=Desposit
Path[2]=SBI@Masoud发布imageshow需要10个声誉我可以访问表单加载事件中创建的名称吗?我必须使用ToolStripMenuItem dcash=sender作为ToolStripMenuItem;作品谢谢
private void dcash(object sender, EventArgs e)
{
ToolStripMenuItem tsmi = (ToolStripMenuItem)sender;
List<string> path = new List<string>();
path.Add(tsmi.Name);
while (tsmi.OwnerItem.GetType() != typeof(ToolStrip))
{
tsmi = (ToolStripMenuItem)tsmi.OwnerItem;
path.Add(tsmi.Name);
}
}