C#查找ToolStripButtons

-1 c# winforms

我试图遍历所有ToolStripButtons并找到所有ToolStripButtons.我的代码是:

private ToolStripItem FindControl(ToolStripButton parent, string controlName)
    {
        ToolStripButton c = null;
        foreach (ToolStrip ctrl in parent.Owner.Items.ToString())
        {
            if (ctrl.GetType().ToString() == typeof(ToolStrip).ToString())
            {
                foreach (ToolStripButton item in ((ToolStripButton)ctrl).OwnerItem.Name)
                {
                    if (item.GetType().ToString() == typeof(ToolStripButton).ToString())
                    {
                        if (item.Name.Equals(controlName))
                        {
                            //c = item.GetType().ToString() =typeof(ToolStripButton).ToString();
                            return item;
                        }
                    }
                }
            }
            if (c == null)
            {
                c = FindControl(parent.GetType().ToString() == typeof(ToolStripButton).ToString(), parent.Name);
            }

            else
            {
                break;
            }
        }
        return c;
    }
Run Code Online (Sandbox Code Playgroud)

但它没有产生预期的结果.在此输入图像描述

Fil*_*urt 6

使用Linq .OfType<T>(),您可以大大简化查找所需的控件:

var toolstrips = parent.Owner.Items.OfType<ToolStripButton>();
Run Code Online (Sandbox Code Playgroud)