Я пытаюсь заполнить scrollable panel
блоками pi c через l oop и вычислить координаты, чтобы нарисовать красивую сетку, но когда я начинаю прокручивать во время рисования (я рисую, например, 50 элементов с задержкой 500 мс между каждым) , то это становится беспорядком, но я не уверен, как работать с «координатами внутри панели»
Когда я не прокручиваю, тогда все в порядке:
Но когда я начинаю прокручивать, он ведет себя так:
Вот мой код для рисования каждого element:
public int X { get; set; } = 0;
public int Y { get; set; } = 200;
private void DrawImage(Image image)
{
var height = 100; // height of row
var width = panel1.Width / 5; // 5 elements per row
var picbox = new PictureBox();
picbox.Location = new Point(X, Y);
picbox.Name = $"image{_images.Count}";
picbox.Image = image.Bitmap;
picbox.Height = height;
picbox.Width = width;
panel1.Controls.Add(picbox);
X += width;
if (X >= panel1.Width)
{
Y += height;
X = 0;
}
}
Когда я выполнял:
this.panel1.Controls.Cast (). Where (x => x.Name.Contains ("image ")). Select (x => x.Location) .ToList ()
тогда я заметил, что после прокрутки координаты" изображений выше "изменились на отрицательные:
Итак, как я могу работать с координатами внутри панели, а не с экраном?