winform 程序 动态生成控件练习

来源:互联网 发布:知乎 邮箱注册 编辑:程序博客网 时间:2024/05/20 02:53

自动生成i个控件,生成控件的个数不确定,最后程两列显示出来。


(辣个,算法神马的拿时间怼总能怼出来,不是最优,但可以显示出来。)

//先查出来总个数,总个数的一半来求每个的高,窗体高度固定,根据总的高度计算           
 for (int i = 0; i < dt.Rows.Count; i++)            {                int height = this.Height / (dt.Rows.Count / 2 + 1);//每个label占的高度,包括空隙(图中红框高度)                                if (i <= dt.Rows.Count / 2 )//分两列                {                        //左侧                        addLabel(name, dt.Rows[i][0].ToString().Trim(), 80, height * i);                                        }else {                                          //右侧                        addLabel(name, dt.Rows[i][0].ToString(), 500, height * (i - dt.Rows.Count / 2 - 1));                 }            }

添加控件:

    /// <summary>      /// 添加文本框      /// </summary>      /// <param name="name">名字</param>     /// <param name="content">内容</param>      /// <param name="x">控件横坐标</param>      /// <param name="y">纵坐标</param>        public void addTextBox(string name,string content,int x,int y)        {            TextBox txt = new TextBox();            txt.Name = "txt"+name;            txt.Text = content;            txt.Width = 100;            txt.Height = 25;            txt.Location = new Point(x,y);           // this.Controls.Add(txt);            panel1.Controls.Add(txt);        }


注意:this的使用,我在应用中被this小坑了一把

      从总体上有个思路就写实践,先实现再想优化


复杂的东西就是简单的拼起来的。

原创粉丝点击