2013-03-05 54 views
1

我在面板中繪製光柵,僅用於調整。在這個柵格上,用戶可以構建簡單的安全。我添加了一些功能,以便用戶可以調整連接。問題在於所有的東西都被塗抹了。有沒有可能做這樣的事情? 我加2個屏幕截圖,以更清楚我的意思:防止透支

http://www.pic-upload.de/gal-337018/f5lsv1/1.html

代碼:

private void UserMovesButton(object sender, MouseEventArgs e) 
{ 
    if (e.Button == System.Windows.Forms.MouseButtons.Left) 
    { 
     if (FirstFinished != 0) 
     { 
      dummy.Color = MainPanel.BackColor; 
      Start = connectionButtons[ActualIndex - 1].Location; 
      drawline(); 
      Start = connectionButtons[ActualIndex + 1].Location; 
      drawline(); 
     } 
     dummy.Color = Color.Black; 
     Control controlToMove = (Control)sender; 
     controlToMove.BringToFront(); 
     controlToMove.Location = new Point(controlToMove.Location.X + e.Location.X - 10, 
      controlToMove.Location.Y + e.Location.Y - 10); 
     { 
      Start = connectionButtons[ActualIndex - 1].Location; 
      Stop.X = controlToMove.Location.X + e.Location.X - 10; 
      Stop.Y = controlToMove.Location.Y + e.Location.Y - 10; 
      FirstFinished = 1; 
      drawline(); 
      Start = connectionButtons[ActualIndex + 1].Location; 
      drawline(); 
      Thread.Sleep(10); 
     } 
    } 
} 

(Connectionbuttons是incldes的按鈕的列表)我已經想過

使用z軸,但drawline不支持類似的東西。

回答

2

不知道你的drawLine()方法有什麼作用,但我假設你用它來畫UserControl。這不是正確的做法。您應該從UserControl派生,覆蓋OnPaint()方法並在那裏進行所有繪畫(從最底層的對象開始)。要確保在更改數據結構後調用OnPaint(),可以使用UserControlInvalidate()Refresh()方法。

+0

坦克。我現在讀了它 – Robert 2013-03-05 12:25:15