具体情况是 panel初始化后,通过点击按钮添加发现后,与具体存放位置不符,遂检查传入的X和Y坐标 发现没有问题后,再次检查其TOP和Height也没出错。
Labellbl=newLabel();lbl.Text=labelCount.ToString();lbl.AutoSize=false;lbl.Size=newSize(30,22);lbl.Name="lbl"+labelCount.ToString();intintX=25+int.Parse((labelCount-1).ToString())%5*105;intintY=25+int.Parse((labelCount-1).ToString())/5*35;lbl.Location=newPoint(intX,intY);最后发现是相对位置出现问题,lbl.Location存放位置 是根据你当前的panel左上角定位,也就说
如果你移动了panel,lbl存放的位置就会发生变化,所以解决方法就是减去相对位移就可以解决了
// 关键:加上当前滚动偏移scrollPos=pl.AutoScrollPosition;actualLocation=newPoint(intX+scrollPos.X,intY+scrollPos.Y);lbl.Location=actualLocation;pl.Controls.Add(lbl);如图所示: