C#如何反射获取一个winform上的所有的控件的值

现在创建了一个winform;如何通过反射获取其包含的控件的属性值?

3个回答

 void button1_Click()
{
findallctrls(this, x => { MessageBox.Show(x.Name); });
}
void findallctrls(Control c, Action<Control> a)
{
foreach (Control c1 in c.Controls) findallctrls(c1, a);
a();
}

不需要反射,用controls集合就可以。
void button1_Click()
{
findallctrls(this, x => { MessageBox.Show(x.Name); });
}
void findallctrls(Control c, Action a)
{
foreach (Control c1 in c.Controls) findallctrls(c1, a);
a();
}

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复wild84: 看楼下,这个代码的<Control>被编辑器吃了。我重新贴了。
2 年多之前 回复
wild84
wild84 这个程序运行出错,提示a方法没有参数;老师要求这样做,说敏捷开发用的多
2 年多之前 回复

控件的属性倒是需要反射
void enumallprop(object obj)
{
foreach (var item in obj.GetType().GetProperties())
{
MessageBox.Show(item + "," + item.GetValue(obj, null));
}
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问