绘制的矩形仅出现在userControl的最后一个实例上

时间:2011-04-14 18:08:55

标签: c# winforms visual-studio graphics drawing

我有一个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);
    }

enter image description here

谢谢!

1 个答案:

答案 0 :(得分:1)

如果没有进一步的信息,我会猜测'表面'是静态的。

跟踪OnPaint并检查哪个控件正在绘制,以及“surface”的边界是什么。也许所有控件都在绘制相同的矩形。