wild84
wild84
采纳率91.6%
2018-01-11 13:32

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

5
  • c#
已采纳

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • caozhy 从今以后生命中的每一秒都属于我爱的人 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();
    }
    
    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 3年前

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

    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 3年前

    不需要反射,用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();
    }

    点赞 评论 复制链接分享

相关推荐