Не удается установить местоположение PictureBox на панели - PullRequest
0 голосов
/ 07 апреля 2010

У меня есть созданная панель. Это имеет автопрокрутку = true

В начале я добавил 6 коробок с изображениями размером 256x256. Я сохраняю последнюю папку с картинками, чтобы знать, куда поместить новую картинку.

Я также добавляю графический блок в верхнем правом углу панели (местоположение (8744,8744)), чтобы панель растягивалась до 9000 пикселей.

Позже, когда я прокручиваю панель, я могу нажать кнопку и добавить на панель изображение. Проблема заключается в том, что когда я устанавливаю расположение ящика с картинками и добавляю его на панель, это выглядит совершенно неправильно, визуально.

Код для добавления дополнительных изображений.

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();

}

Если я отлаживаю и наблюдаю за панелью, он говорит, что в новом окне для картинок есть местоположение, которое я установил, но визуально это не так.

Я заметил, что это то, что действительно происходит: Расположение ящика с картинками находится там, где я прокручивал + location.X.

Кто-нибудь понял, как я могу это исправить?

Заранее спасибо.

1 Ответ

2 голосов
/ 07 апреля 2010

Если графические блоки добавляются после того, как вы прокрутите от координат 0,0, вам, возможно, придется учесть это, добавив сумму прокрутки в pixelCoordinates. Попробуйте использовать imagePanel.VerticalScroll.Value и imagePanel.HorizontalScroll.Value в своих вычислениях.

...