Winform現在のフォームのコントロールを取得
1521 ワード
概要:
Winformが現在の窓コントロールを取得する方法について説明します.コンテナクラスのコントロールにコントロールを置くと、通常の方法はthis.Controlsにはすべてのコントロールは含まれません.
使用
方法1
方法2
方法3
Winformが現在の窓コントロールを取得する方法について説明します.コンテナクラスのコントロールにコントロールを置くと、通常の方法はthis.Controlsにはすべてのコントロールは含まれません.
使用
方法1
// ,Button GroubBox ,
List list = new List();
foreach (Control c in this.Controls)
{
list.Add(c);
}
方法2
// , : 。 。
System.Reflection.FieldInfo[] field = this.GetType().GetFields(
System.Reflection.BindingFlags.NonPublic |
System.Reflection.BindingFlags.Instance |
System.Reflection.BindingFlags.Public);
IEnumerable ec = field.Select(s => s.GetValue(this) as Control).Where(s => s != null);
List list = new List();
list = ec.ToList();
方法3
List list = new List();
private void Form1_Load(object sender, EventArgs e)
{
// ,
GetCtl(this.Controls);
}
private void GetCtl(Control.ControlCollection ctl)
{
foreach (Control c in ctl)
{
//
if (c is Panel || c is GroupBox)
{
GetCtl(c.Controls);
}
list.Add(c);
}
}