Form上のすべてのボタンを抽出したい。
Form上のコントロールを再帰的に取得する。
そのあと、任意のコントロール(ボタンとか)を抽出する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System.Collections.Generic; using System.Windows.Forms; class Class_misc { public IEnumerable<Control> GetAllControls(Control parent) { List<Control> controls = new List<Control>(); foreach (Control c in parent.Controls) { controls.AddRange(GetAllControls(c)); } controls.Add(parent); return controls; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Class_misc misc = new Class_misc(); var allControlLst = misc.GetAllControls(this); foreach (var item in allControlLst) { if (item.GetType().Equals(typeof(Button))){ //ここに処理 } } // もしくはラムダ式? var buttonList = allControlLst .Where(bt => bt.GetType().Equals(typeof(Button))); foreach(var bt in buttonList) { bt.Enabled = true; } |
コメント