2010-03-25 26 views
0

我有一個WinForm應用程序,該應用程序在PictureBox中顯示圖像,該圖像具有允許用戶通過單擊和拖動在圖像上繪製矩形的附加功能。 矩形的位置,高度和寬度保存到磁盤。如何在WinForm應用程序中的正確位置繪製矩形

當再次查看圖像時,我想自動在圖像上的相同位置重繪該矩形。

然而,當我重繪它時,高度和寬度都很好,但位置總是關閉。

位置在MouseDown事件被捕獲,像這樣

private void pbSample_MouseDown(object Sender, MouseEventArgs e) 
    { 
     if (SelectMode) 
      { 
      StartLocation.X = e.X; 
      StartLocation.Y = e.Y; 
      //later on these are saved as the location of the rectangle 
      }  

    } 

而且我重繪像這樣

public void DrawSelectedArea(Rectangle rect) 
    { 
     Graphics g = this.pbSample.CreateGraphics(); 
     Pen p = new Pen(Brushes.Black); 
     g.DrawRectangle(p, rect); 
    } 

鑑於從mouseDown事件如何在捕捉到的MouseEventArgs位置可我計算正確的位置來重繪我的矩形?

回答

0

您捕獲的鼠標點擊可能是相對於窗體而不是圖片框。您需要確保正確捕獲座標或抵消座標。

你能舉一個截圖作爲例子嗎?

相關問題