2011-04-05 86 views
2

我们以前的开发人员使用插件(Infragistics)来创建UI组件(按钮,选项卡,底座,标签等),但它需要包含所有的DLL。是否有任何工具可以列出WinForm的所有组件?

我正在寻找转换成基本的WinForm与“股票”的用户界面组件,而不使用Infragistics(更小的安装?几乎没有DLL)。

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

C#MVS2008

回答

4

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

+0

非常好,谢谢先生。 – mastofact 2011-04-05 16:43:15

0

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

+0

我正在考虑您所说的内容,但没有看到使用常规控件无法完成的任何其他功能。这是一个基本的“配置”窗口:文本框,数字条目,收音机/复选框,按钮。感谢您对ILMerge的建议,我会研究这一点。 – mastofact 2011-04-05 15:09:33

0

好了,你可以自己很轻松地创建这样的工具,这里是如何得到一个WinForm的所有控制列表的C#示例:

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)进入您的程序并处理结果。

相关问题