我們以前的開發人員使用插件(Infragistics)來創建UI組件(按鈕,選項卡,底座,標籤等),但它需要包含所有的DLL。是否有任何工具可以列出WinForm的所有組件?
我正在尋找轉換成基本的WinForm與「股票」的用戶界面組件,而不使用Infragistics(更小的安裝?幾乎沒有DLL)。
我想知道是否有一個工具/插件將列出給定的WinForm中的所有組件/元素的名稱屬性(可能更多)?
C#MVS2008
我們以前的開發人員使用插件(Infragistics)來創建UI組件(按鈕,選項卡,底座,標籤等),但它需要包含所有的DLL。是否有任何工具可以列出WinForm的所有組件?
我正在尋找轉換成基本的WinForm與「股票」的用戶界面組件,而不使用Infragistics(更小的安裝?幾乎沒有DLL)。
我想知道是否有一個工具/插件將列出給定的WinForm中的所有組件/元素的名稱屬性(可能更多)?
C#MVS2008
它內置於Visual Studio中。查看+(其他窗口)+文檔大綱。在設計模式下打開表單。它以名稱和類型的形式顯示了所有控件和組件的列表。
最有可能的,有一個理由,爲什麼以前的開發中使用的Infragistics。這些控件庫提供比默認的WinForms控件更多的功能。如果他使用了高級功能,則不能簡單地替換它們,因爲WinForms控件中沒有相應的功能。包括DLLs並不是真正的問題,如果是這樣,只需將它們合併到使用ilmerge的EXE中即可......這將減少需要部署的文件數量。
我正在考慮您所說的內容,但沒有看到使用常規控件無法完成的任何其他功能。這是一個基本的「配置」窗口:文本框,數字條目,收音機/複選框,按鈕。感謝您對ILMerge的建議,我會研究這一點。 – mastofact 2011-04-05 15:09:33
好了,你可以自己很輕鬆地創建這樣的工具,這裏是如何得到一個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)
進入您的程序並處理結果。
非常好,謝謝先生。 – mastofact 2011-04-05 16:43:15