2010-08-30 3 views
0

Я загрузил коллекцию изображений в папку (значки), и мне интересно, как я могу загрузить их все в список во время запуска программы. Я пытаюсь заставить их загрузиться в представление, показывая изображение с надписью или описанием под изображением.C# WinForms - Listview loading Images

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

Я относительно новичок в выполнении этих типов вещей внутри C#.

ответ

1

Я думаю, вам нужно ListView.LargeImageList или ListView.SmallImageList.
Обратите внимание, что их значение по умолчанию равно null, что означает, что вам необходимо назначить новый объект ImageList. После этого вы можете загрузить изображения в ImageList.

Затем вы можете установить индекс изображения для отображения с помощью свойства ListViewItem.ImageIndex.
Что касается загрузки изображений из файлов, вы можете использовать метод Image.FromFile.

Я не совсем уверен, что полностью понимаю, чего вы пытаетесь достичь с этого момента, но я думаю, что событие ListView.ItemSelectionChanged может дать вам то, что вы хотите.

0

ListView не поддерживает встроенные PictureBox или другие элементы управления, но вы можете использовать ImageList, как отметил ShdNx.

Обязательно выполните загрузку в отдельном потоке и правильно синхронизируйте (то есть вызовите BeginInvoke при обновлении ImageList). Это гарантирует, что ваш пользовательский интерфейс не будет висеть во время загрузки.

Существует также третья сторона компонент Better Thumbnail Browser для именно это (он поддерживает автоматическую загрузку из папки базы данных или другого источника, масштабирование, флажки, многоходовую нагрузки, кэширование изображений и много других вкусностей):

enter image description here