C# |如何获取 ToolStrip 的所有子项?
C# | How to get all child items of ToolStrip?
我需要为 ToolStrip/MenuStrip/StatusStrip 获取任何子项
翻译文本。
我通过简单的递归用控件做到了,但我不知道如何用 ToolStrip 项目做到这一点,因为 ToolStripItem class.
中没有 DropDownItems 属性
这是我写的,效果很好。
private ToolStripItem[] GetAllChildren(ToolStripItem item)
{
List<ToolStripItem> Items = new List<ToolStripItem> { item };
if (item is ToolStripMenuItem)
foreach (ToolStripItem i in ((ToolStripMenuItem)item).DropDownItems)
Items.AddRange(GetAllChildren(i));
else if (item is ToolStripSplitButton)
foreach (ToolStripItem i in ((ToolStripSplitButton)item).DropDownItems)
Items.AddRange(GetAllChildren(i));
else if (item is ToolStripDropDownButton)
foreach (ToolStripItem i in ((ToolStripDropDownButton)item).DropDownItems)
Items.AddRange(GetAllChildren(i));
return Items.ToArray();
}
我需要为 ToolStrip/MenuStrip/StatusStrip 获取任何子项 翻译文本。
我通过简单的递归用控件做到了,但我不知道如何用 ToolStrip 项目做到这一点,因为 ToolStripItem class.
中没有 DropDownItems 属性这是我写的,效果很好。
private ToolStripItem[] GetAllChildren(ToolStripItem item)
{
List<ToolStripItem> Items = new List<ToolStripItem> { item };
if (item is ToolStripMenuItem)
foreach (ToolStripItem i in ((ToolStripMenuItem)item).DropDownItems)
Items.AddRange(GetAllChildren(i));
else if (item is ToolStripSplitButton)
foreach (ToolStripItem i in ((ToolStripSplitButton)item).DropDownItems)
Items.AddRange(GetAllChildren(i));
else if (item is ToolStripDropDownButton)
foreach (ToolStripItem i in ((ToolStripDropDownButton)item).DropDownItems)
Items.AddRange(GetAllChildren(i));
return Items.ToArray();
}