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);
                    }
                }
            }

测试结果:

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

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

上一篇:无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer、Windows服务器管理工具或NET START命令启动它


下一篇:windows批量修改文件名称