本文转载自微信公众号《UP科技控件》,作者conan5566。转载本文请联系UP技控公众号。概述动态创建和添加控件,您可以一次将多个控件放在一个大容器中。示例:根据在文本框中输入的数字,将多少个按钮添加到flowLayoutPanel1。在窗体设计中,如果需要任何控件,从工具箱中拖出一个控件并将其“挂”在窗体上。事实上,窗体上的控件不仅可以“拖动”,还可以通过代码动态生成。动态生成的控件对于需要相同控件的大量控件更有用。实现方法1.加载数据,在面板中添加一个Label控件。privatevoidLoadRoomType(){DataTabledtRoomType=_roomTypeBLL.GetModelList("","Code");pnlRoomType.Controls.Clear();intpadding=5;intx=padding,y=padding;pnlRoom.Controls.Clear();foreach(DataRowitemindtRoomType.行){Labellbl=newLabel();lbl.Text=string.Format("{0}",item["Names"]);lbl.Image=btnRoomType.Image;lbl.Cursor=Cursors.IBeam;lbl.TextAlign=btnRoomType.TextAlign;lbl.Font=btnRoomType.Font;lbl.ForeColor=btnRoomType.ForeColor;lbl.Size=btnRoomType.Size;lbl.Location=newPoint(x,y);lbl.Tag=item;lbl.Click+=newEventHandler(lbl_Click);lbl.MouseEnter+=newEventHandler(lbl_MouseEnter);lbl.MouseLeave+=newEventHandler(lbl_MouseLeave);x+=lbl.Width+padding;if(x+lbl.Width>pnlRoomType.Width){x=padding;y+=lbl.Height+padding;}pnlRoomType.Controls.Add(lbl);}intheight=y+(x!=padding?pnlRoomType.Height:0)+padding;intaddHeight=height-pnlRoomType.Height;pnlRoom.Top=pnlRoom.Top+addHeight;pnlRoom.Height=pnlRoom.Height-addHeight;pnlRoomType.Height=pnlRoomType.Height+addHeight;if(dtRoomType.Rows.Count>0)LoadRoomByTypeID(dtRoomType.Rows[0],0);}2、定义Label的点击事件voidlbl_Click(objectsender,EventArgse){try{Labellbl=senderasLabel;DataRowrow=lbl.TagasDataRow;LoadRoomByTypeID(row,0);}catch(Exceptionex){;}}3、确定标签的鼠标事件。#regionlbl_MouseLeavevoidlbl_MouseLeave(objectsender,EventArgse){Labellbl=senderasLabel;lbl.Font=newFont(lbl.Font,FontStyle.Regular);lbl.Cursor=Cursors.Default;lbl.ForeColor=btnRoomType.ForeColor;}#endregion#regionlbl_MouseEntervoidlbl_MouseEnter(objectsender,EventArgse){Labellbl=senderasLabel;lbl.Font=newFont(lbl.Font,FontStyle.Bold);lbl.Cursor=Cursors.IBeam;}#endregion效果
