winform 程式 動態生成控制元件練習
阿新 • • 發佈:2019-01-31
自動生成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)); } }
新增控制元件:
注意:this的使用,我在應用中被this小坑了一把/// <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); }
從總體上有個思路就寫實踐,先實現再想優化
複雜的東西就是簡單的拼起來的。