其他分享
首页 > 其他分享> > WinForm_根据类的属性利用反射动态创建Label

WinForm_根据类的属性利用反射动态创建Label

作者:互联网

Class:

    class Recipe
    {
        public int ID { get; set; }
        public string RecipeName { get; set; }
        public string Comment { get; set; }
        public string Quantity { get; set; }
        public string con1 { get; set; }
        public string con2 { get; set; }
        public string con3 { get; set; }
    }

现在根据con1,con2 和 con3 动态创建三个label.

            int X = 75, Y = 65, i = 0;
            Recipe recipe = new Recipe { ID = 1, con1 = "p1", con2 = "p2", con3 = "p3" };
            foreach (var prop in recipe.GetType().GetProperties())
            {
                if (prop.Name.StartsWith("con"))
                {
                    var value = prop.GetValue(recipe);
                    if (value != null)
                    {
                        Label label = new Label()
                        {
                            AutoSize = true,
                            MaximumSize = new Size(300, 150),
                            MinimumSize = new Size(300, 10),
                            Location = new Point(X, Y + 20 * i),
                            Text = value.ToString()
                        };
                        i++;
                        Controls.Add(label);
                    }
                }
            }

测试结果:

标签:set,string,get,recipe,动态创建,Label,new,public,WinForm
来源: https://www.cnblogs.com/xingyz/p/12612533.html