wild84
wild84
2018-01-11 13:32
采纳率: 91.6%
浏览 4.4k

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • caozhy
    已采纳
     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();
    }
    
    点赞 评论
  • caozhy

    不需要反射,用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

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

    点赞 评论

相关推荐