C#|如何获取ToolStrip的所有子项?

时间:2016-08-24 14:21:29

标签: c# .net recursion toolstrip

我需要获取ToolStrip / MenuStrip / StatusStrip的任何子项 翻译文本。

我通过简单的递归使用控件完成了它,但我不知道如何使用ToolStrip项,因为ToolStripItem类中没有DropDownItems属性。

1 个答案:

答案 0 :(得分:0)

我写了这个,它做得很好。

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();
    }