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

本文关键字:ToolStrip 获取 何获取 | 更新日期: 2023-09-27 18:03:43

我需要得到ToolStrip/MenuStrip/StatusStrip的任何子项目翻译课文。

我做了简单的递归控制,但我不知道如何与ToolStrip项目,因为没有DropDownItems属性在ToolStripItem类。

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

我写了这个,它工作得很好。

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