是否有任何工具列出WinForm的所有组件?

时间:2011-04-05 15:00:02

标签: visual-studio-2008 plugins visual-studio-addins

我们以前的开发人员使用插件(Infragistics)来创建UI组件(按钮,标签,停靠栏,标签等),但它需要包含所有的DLL。

我希望将此转换为具有“stock”UI组件的基本WinForm,而不使用Infragistics(较小的安装?几乎没有DLL)。

我想知道是否有一个工具/插件会列出给定WinForm中所有组件/元素的Name属性(可能更多)?

C#MVS2008

3 个答案:

答案 0 :(得分:5)

它内置于Visual Studio中。查看+(其他Windows)+文档大纲。在设计模式下打开表单。它显示了表单中包含名称和类型的所有控件和组件的列表。

答案 1 :(得分:0)

最有可能的是,为什么以前的开发人员使用Infragistics。这些控件库提供的功能比默认的WinForms控件更多。如果他使用了这种高级功能,则不能简单地替换它们,因为WinForms控件中没有相应的功能。包含DLL并不是一个真正的问题,如果是,只需使用ilmerge将它们合并到您的EXE中......这将减少您需要部署的文件数量。

答案 2 :(得分:0)

嗯,你可以很容易地自己创建这样一个工具,下面是一个C#示例,说明如何获取WinForm的所有控件的列表:

    public static List<Control> FindAllControls(Control container)
    {
        List<Control> controlList = new List<Control>();
        FindAllControls(container, controlList);
        return controlList;
    }

    private static void FindAllControls(Control container, List<Control> ctrlList)
    {
        foreach (Control ctrl in container.Controls)
        {
            if (ctrl.Controls.Count == 0)
                ctrlList.Add(ctrl);
            else
                FindAllControls(ctrl, ctrlList);
        }
    }

当然,您必须在某个地方拨打电话var lst = FindAllControls(theForm)并处理结果。