1
嗯,我已经试过this:遍历的MenuStrip子项目
private IEnumerable<ToolStripMenuItem> GetItems(ToolStripMenuItem item)
{
foreach (ToolStripMenuItem dropDownItem in item.DropDownItems)
{
if (dropDownItem.HasDropDownItems)
{
foreach (ToolStripMenuItem subItem in GetItems(dropDownItem))
yield return subItem;
}
yield return dropDownItem;
}
}
private void button2_Click_1(object sender, EventArgs e)
{
List<ToolStripMenuItem> allItems = new List<ToolStripMenuItem>();
foreach (ToolStripMenuItem toolItem in menuStrip1.Items)
{
allItems.Add(toolItem);
MessageBox.Show(toolItem.Text);
allItems.AddRange(GetItems(toolItem));
}
}
,但我只得到File
,Edit
,View
我需要达到Export
(见图)及其subitem
,并且可能例如改变Word
的可见性。
注意:form
动态更改menustrip
项目,这就是为什么我需要通过它们循环。
好吧,我不能测试它,'item.Text'和'item.Visible''下有蓝线,“对象不包含文本定义,Visible ....” –
这是因为编译器不知道类型是什么的项目在foreach循环中,而不是(var item)put(ToolStripItem项目),并试一试 – Monah
Works!谢谢 –