我们以前的开发人员使用插件(Infragistics)来创建UI组件(按钮,标签,停靠栏,标签等),但它需要包含所有的DLL。
我希望将此转换为具有“stock”UI组件的基本WinForm,而不使用Infragistics(较小的安装?几乎没有DLL)。
我想知道是否有一个工具/插件会列出给定WinForm中所有组件/元素的Name属性(可能更多)?
C#MVS2008
答案 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)
并处理结果。