日期:2014-05-18  浏览次数:21092 次

C#动态添加控件的位置
使用代码动态地在窗体中添加控件,如picturebox,默认初始位置在窗体的左上角,如何使我每次添加的picturebox控件不互相位置重复,且不会相互遮挡。保持互相间的一段距离,因为相互之间要用线连接,如果错位或者遮挡的话线就没办法体现出来,最好是相互间保持一段距离

------解决方案--------------------
记录上一个的位置,然后再次基础上增加偏移
------解决方案--------------------
定义两个变量x、y,记载有几个图片控件已经显示了,

再加上每个图片控件的间距就是下一个图片控件的Location坐标了。
------解决方案--------------------
把控件添加到flowLayoutPanel就不用担心控件重合了
------解决方案--------------------
 
 int CtrlXMargin = 5;
int CtrlYMargin = 5;
int CtrlHeight = 24;
//

CheckBox ckBox = new CheckBox();
ckBox.Text = "123";
ckBox.Name ="123";
ckBox.Location = new Point(CtrlXMargin, CtrlYMargin + yIndex * CtrlHeight);
ckBox.Size = new Size(CtrlDefaultWidth, CtrlHeight);
pnl.Controls.Add(ckBox);




 Label lbl = new Label();
lbl.Location = new Point(ckBox.Right + CtrlXspace, CtrlYMargin + yIndex * CtrlHeight);
lbl.Size = new Size(17, 17);
lbl.Name = "456";
lbl.Text = "含";
lbl.BackColor = Color.Coral;
lbl.TextAlign = ContentAlignment.MiddleCenter;