2013-03-12 4 views
1

Я хочу составить список предметов с картинками, количество предметов может варьироваться от 1-60 и для каждого элемента, который я хочу также показать. Я считаю, что лучший способ сделать это - использовать ListView в C#. это правда, и если да, то как мне это сделать? я также думал об использовании интерактивных изображений в прокрутке окнаlistview в C# с изображениями

+0

у вас сделал поиск Google в разделе «Добавление изображений в Listview»? есть 1000 примеров в Интернете, чтобы сделать это. Покажите больше усилий, пожалуйста, – MethodMan

+0

@DJKRAZE Я знаю, я просто хотел убедиться, что это лучший способ сделать это. – Froodle

+0

Посмотрите на ссылку в приведенном выше комментарии, это вполне возможно – MethodMan

ответ

8

Если вы хотите сделать это в конструкторе, вы можете предпринять следующие шаги, чтобы добавить изображений к элементу управления ListView:

  1. переключатель дизайнеру, щелкните на компоненте ImageList на компонентном лотке, , в верхнем правом углу ImageList появится смарт-тег.
  2. Нажмите смарт-тег и нажмите «Выбрать изображения» на панели.
  3. Во всплывающем диалоговом окне Редактор изображений выберите изображения из папки .
  4. Нажмите «ОК», чтобы завершить добавление изображений в ImageList.
  5. Щелкните по элементу ListView в форме, в правом верхнем углу появится .
  6. Нажмите смарт-тег, вы найдете там три ComboBoxes, выберите ImageList из списка, который вы хотите.
  7. Нажмите «Добавить элементы» на смарт-теге, появится редактор коллекции ListViewItem , вы можете добавить элементы в ListView, здесь важно установить свойство ImageIndex или ImageKey , или изображение не появится ,
  8. Нажмите «ОК», чтобы закончить редактирование, теперь вы увидите, что изображения отображаются в списке «0».

Если вы хотите добавить изображения в ListView с помощью кода, вы можете сделать что-то вроде this`

Код сниппета


private void Form10_Load(object sender, EventArgs e) 
    { 
     DirectoryInfo dir = new DirectoryInfo(@"c:\pic"); 
     foreach (FileInfo file in dir.GetFiles()) 
     { 
      try 
      { 
       this.imageList1.Images.Add(Image.FromFile(file.FullName)); 
      } 
      catch{ 
       Console.WriteLine("This is not an image file"); 
      } 
     } 
     this.listView1.View = View.LargeIcon; 
     this.imageList1.ImageSize = new Size(32, 32); 
     this.listView1.LargeImageList = this.imageList1; 
     //or 
     //this.listView1.View = View.SmallIcon; 
     //this.listView1.SmallImageList = this.imageList1; 

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

Source

+0

Вышеприведенный ответ в порядке, но нет ссылки между именем файла и его изображением, если вы захотите манипулировать файлами позже. поэтому я бы добавил ключ file.Name к изображению, добавленному в imageList. 'imageList1.Images.Add (file.Name, Image.FromFile (file.FullName)); ... ListViewItem item = новый ListViewItem (file.Name); item.SubItems.Add (file.Extension); item.ImageKey = file.Name; ' – IEnumerable

Смежные вопросы