У меня есть код для отображения нескольких изображений в панелиМестоположение свойства PictureBox в C#
public List<Image> images = new List<Image>();
public List<PictureBox> pictures = new List<PictureBox>();
public int top=10;
public int ItemCount = 0;
private void tsbOpen_Click(object sender, EventArgs e)
{
OpenFileDialog file = new OpenFileDialog();
file.Filter="Image files (*.jpg, *.jpeg, *.jpe, *.jfif, *.png) | *.jpg; *.jpeg; *.jpe; *.jfif; *.png";
if (file.ShowDialog() == DialogResult.OK)
{
images.Add(Image.FromFile(file.FileName));
pictures.Add(new PictureBox());
pictures[ItemCount].Image = images[ItemCount];
pictures[ItemCount].Width = images[ItemCount].Width;
pictures[ItemCount].Height = images[ItemCount].Height;
pnlMain.Controls.Add(pictures[ItemCount]);
pnlMain.Controls[ItemCount].Location=new Point(0,top);
top += (images[ItemCount].Size.Height+10);
ItemCount++;
}
}
Но когда я выбираю третье изображение, расстояние между вторым и третьими изображениями отличаются, чем между первым и второй. Как я могу сделать расстояние между изображениями равными?
Как вы хотите разместить ПБ? Все в одной строке или в нескольких рядах? – TaW
Проверка снова, я думаю, что ваш код работает просто отлично! Что вы подразумеваете под «расстоянием .. становится неузнаваемым». ?? Изменяется ли это с помощью изображений, которые вы выбрали? – TaW
Только один маленький тонкий, который вы, возможно, захотите улучшить: если у вас PB есть граница, вы должны установить свой клиенс, а не внешние границы: 'pictures [ItemCount] .ClientSize = images [ItemCount] .Size;' - Ну и из контекста это FlowLayoutPanel, который будет выполнять все макеты! – TaW