В общем, есть папка с изображениями, при выборе этой папки на форме нужно создать PictureBox
и в каждый PictureBox
поместить изображение, т.е - получается как бы "страница" с изображениями. Только нужно предусмотреть, чтобы PictureBox
не выходил за рамки самой формы, может можно поместить в какой-нибудь "контейнер" у которого появляется скролл?
Подскажите, пожалуйста, буду очень благодарен.
Скриншот для визуального примера.
Разобрался! Проблема с исключением OutOfMemoryException
была из-за того, что в папке с изображениями присутствовал скрытый файл Thumbs.db
. Можете удалить вручную, а можно игнорировать это исключение.
Создайте FlowLayoutPanel
поставьте AutoScroll = true
и Dock = Fill
.
Код:
List<PictureBox> picturebox = new List<PictureBox>();
DirectoryInfo directoryInfo = new DirectoryInfo(@"путь к папке с изображениями");
var recentpics = directoryInfo.GetFiles().ToList();
var y = 10;
foreach (var file in recentpics)
{
var pb = new PictureBox();
pb.Location = new Point(picturebox.Count * 120 + 20, y);
pb.Size = new Size(100, 120);
try
{
pb.Image = Image.FromFile(file.FullName);
}
catch (OutOfMemoryException) { continue; }
pb.SizeMode = PictureBoxSizeMode.StretchImage;
flowLayoutPanel1.Controls.Add(pb);
picturebox.Add(pb);
}
Результат:
В качестве контейнера лучше использовать FlowLayoutPanel и помещать туда эскизы, вызвав у Image GetThumbnailImage. System.OutOfMemoryException может возникнуть, когда длина файла с картинкой равна 0 (ну или в файле содержится не картинка, это не берусь утверждать)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как можно сделать backup/restore базы данных MSSQL программно на C#? Пользователь выбирает место сохранения (например, флешку) и база сохраняется
Вопрос такой как сделать что бы в одной ссылке передавалось 2 get параметра