我有一个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);
}
谢谢!
答案 0 :(得分:1)
如果没有进一步的信息,我会猜测'表面'是静态的。
跟踪OnPaint并检查哪个控件正在绘制,以及“surface”的边界是什么。也许所有控件都在绘制相同的矩形。