问题描述
|
我有一个userControl,其中有一些以编程方式绘制的矩形。我在表单上需要该userControl的几个实例(请参见图片)。问题在于只有最后一个实例才会显示绘制的形状!
我想这与绘图表面或Paint事件处理程序有关
如果有帮助,这里是我在控件中使用的一些代码:
private void MyUserControl_Paint(object sender,PaintEventArgs e)
{
showHoraireMaitresse();
Rectangle rec = showdisponibilités();
var b = new SolidBrush(Color.FromArgb(150,Color.Blue));
e.Graphics.FillRectangle (b,rec);
showOccupation();
}
private void showHoraireMaitresse()
{
heureDebut = 8;
for (int i = 0; i < 14; i++)
{
//Label d\'heure -> This shows just fine
addLabel(i,heureDebut);
//Rectangles d\'heure -> This shows only in last instance
var rectangle = new Rectangle(180 + i * largeurDUneHeure,14,largeurDUneHeure,30);
surface.DrawRectangle(defaultPen,rectangle);
}
addLabel(14,heureDebut);
}
谢谢!
解决方法
如果没有更多信息,我将猜测“表面”是静态的。
遍历OnPaint并检查正在绘制的控件以及\'surface \'的边界。也许所有控件都绘制相同的精确矩形。