2011-04-05 29 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)進入您的程序並處理結果。

相關問題