Form上の全コントロールを列挙する方法(.Net、WinForm)
Form上の全コントロールを列挙する方法です。
全コントロールに対し何かを設定したい場合に有効だと思います。
(共通のイベントを設定したい等。)
実装のサンプルコード(C#)は下記の通りです。
List<Control> controlList = new List<Control>(); Form f = new Form(); RecursiveControlSearch(f, controlList); //コントロールを再帰的に検索し、resultListへ見つけたコントロールを詰める private void RecursiveControlSearch(Control ctrl, List<Control> resultList) { resultList.Add(ctrl); foreach(Control obj in ctrl.Controls) { RecursiveControlSearch(obj, resultList); } }
LINQを使用したらもっと良い感じに書けそうな気がしたけども、
思いつかないのでこんな感じで。