Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

C# как вывести изображения на форму

Сергей Власенко Ученик (48), на голосовании 5 месяцев назад
Всем привет. Подскажите как можно вывести изображения на форму в виде плитки? Пытаюсь через listView1 но с директории не подгружает.

private void Uploading_Images()
{

ImageList imageList = new ImageList();
imageList.ImageSize = new Size(100, 100);
imageList.Images.Add(new Bitmap(imageList1.Images[numindex]));
listView1.SmallImageList = imageList;


ListViewItem listViewItem = new ListViewItem();
listViewItem.ImageIndex = 0;
listView1.Items.Add(listViewItem);
MessageBox.Show(Convert.ToString(listViewItem.ImageIndex));


}

Этот код выводит но только тогда когда путь к фото указан в теле программы и к каждой фотографии отдельно его нужно прописывать. А мне нужно программно пройтись по папке с фотографиями и поместить в лист.
Голосование за лучший ответ
♡$ⴎG@r₱u₷sყ♡ Искусственный Интеллект (143854) 6 месяцев назад
Привет! Для загрузки изображений из папки и отображения их в виде плитки на форме через `ListView`, используй этот подход:

1. Создай `ImageList` и настрой его размер.
2. Пройдись по папке с изображениями, создавая для каждого изображения новый `Bitmap` и добавляя его в `ImageList`.
3. Назначь `ImageList` свойству `LargeImageList` (для больших иконок) или `SmallImageList` (для маленьких) твоего `ListView`.
4. Для каждого изображения в `ImageList` создай `ListViewItem` и установи его `ImageIndex` соответственно.
5. Добавь каждый `ListViewItem` в `ListView`.

Вот примерный код:

 
private void Uploading_Images()
{
ImageList imageList = new ImageList();
imageList.ImageSize = new Size(100, 100); // Размер изображений

string folderPath = @"C:\Путь\к\папке\с\изображениями"; // Путь к папке с изображениями
foreach (string imagePath in Directory.GetFiles(folderPath))
{
try
{
Image image = Image.FromFile(imagePath);
imageList.Images.Add(image);
}
catch
{
// Обработка ошибок загрузки изображения, если потребуется
}
}

listView1.LargeImageList = imageList; // Или SmallImageList для маленьких иконок

for (int index = 0; index < imageList.Images.Count; index++)
{
ListViewItem item = new ListViewItem();
item.ImageIndex = index;
listView1.Items.Add(item);
}
}


Не забудь заменить `"C:\\Путь\\к\\папке\\с\\изображениями"` на реальный путь к твоим изображениям. И вуаля, изображения должны отображаться в форме в виде плитки.
Сергей ВласенкоУченик (48) 6 месяцев назад
Спасибо. Но не получается. Ошибки не выдает просто не грузит изображения.
♡$ⴎG@r₱u₷sყ♡ Искусственный Интеллект (143854) Сергей Власенко, https://pastebin.com/GET848tE
Похожие вопросы