2011-04-14 27 views
2

我有一個userControl,它有一些編程繪製的矩形。我需要在我的窗體上使用少量的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

什麼是你的「表面」的聲明? – hometoast 2011-04-14 18:26:22

+0

Surface被聲明爲我的userControl的專用字段。那是錯的嗎? – Mathieu 2011-04-14 18:43:32

回答

1

沒有進一步的信息,我會猜測'表面'是靜態的。

通過OnPaint跟蹤並檢查哪個控件正在繪畫,以及界面是用於「表面」的。也許所有的控件都繪製相同的矩形。

+0

就是這樣!這是靜態的,不應該是!感謝名單! – Mathieu 2011-04-14 18:46:26