2010-04-07 52 views
0

我有一個創建的面板。 這具有自動滾屏=真無法在面板中設置PictureBox的位置

在開始我加入6- pictureboxes是256×256用圖像。 我存儲最後一個picturebox的位置,所以我知道在哪裏放置一個新的picturebox。

我還在面板的右上方添加了一個圖片框(位置(8744,8744)),以便面板拉伸到9000px。

後來當我在面板四周滾動,我可以按一個按鈕和一個PictureBox添加到面板上。問題是,當我設置圖片框的位置並將其添加到面板時,它在視覺上完全錯誤。

代碼添加更多圖片。

private void addPictureBox(Point pixelCoordinates, Bitmap image) 
{ 
     PictureBox pNewImage = new PictureBox(); 
     imagePanel.Controls.Add(pNewImage); 

     pNewImage.Image  = image; 
     pNewImage.Name  = "image_:" + pixelCoordinates.X + "_" + pixelCoordinates.Y; 
     pNewImage.Location = pixelCoordinates; 
     pNewImage.Size  = new System.Drawing.Size(256, 256); 
     pNewImage.Visible = true; 
     pNewImage.BackColor = Color.White; 

     imagePanel.Update(); 

} 

如果我調試並觀察面板,它說,新的picturebox有我設置的位置,但在視覺上,它不是。

我注意到這是真正發生的事情: picturebox的位置來自我滾動的位置+ location.X。

任何人有一個想法如何,我可以解決這一問題?

在此先感謝。

回答

2

如果你已經從你可能需要通過添加滾動量pixelCoordinates考慮到這一點的座標0,0滾動離開後正在加入pictureboxes。在您的計算中嘗試使用imagePanel.VerticalScroll.ValueimagePanel.HorizontalScroll.Value

+0

我會盡力,後來試。我昨天嘗試過,但我想我在創建圖像後稍微使用了滾動條值。這顯然是錯誤的。我將把哈希表中的滾動條位置保存在下載圖像的像素座標中,這樣我就可以從圖像的像素座標中減去滾動條的位置。 – Ikky 2010-04-08 10:14:02

相關問題