2014-10-29 3 views
-1

Я хочу добавить изображения из папки и перечислить ее в раскрывающемся списке. Как и в моем приложении, флаги имен файлов содержат все изображения флагов и их название страны. как добавить их в раскрывающийся список.Добавление изображения из папки в выпадающий список

+0

Попробуйте описание того, что вы уже пробовали. – jesperlndk

ответ

0

Попробуйте использовать System.IO.Directory.GetFiles и System.IO.Path.GetFileName

http://msdn.microsoft.com/en-us/library/system.io.directory.getfiles(v=vs.110).aspx

http://msdn.microsoft.com/en-us/library/system.io.path.getfilename(v=vs.110).aspx

Что-то вроде (не пробовал)

// Process the list of files found in the directory. 
string [] files = Directory.GetFiles(yourDirectory); 
foreach(string file in files) { 
    string language = Path.GetFileName(file); 
    ddlFlags.Items.Add(new ListItem(language, file)); 
} 

В следующий раз, улучшить свой вопрос, описывая то, что вы до сих пор пробовали, тогда было бы легче помочь вам.

+0

Аргумент 1: невозможно преобразовать из 'string' в 'Microsoft.Office.Tools.Ribbon.RibbonDropDownItem' Я получаю эту ошибку – user2583182

+0

Список dirList = новый Список (); /// DirectoryInfo [] dir = new DirectoryInfo (@ "D: \ ANITA \ NepaAddintool V1.1 \ NepaAddintool \ Flag"). GetDirectories ("*. *", SearchOption.AllDirectories); string [] files = Directory.GetFiles (@ "D: \ ANITA \ NepaAddintool V1.1 \ NepaAddintool \ Flag \ allflags"); foreach (строковый файл в файлах) { string language = Path.GetFileName (файл); Countryflag.Items.Add (язык); } – user2583182

0

Вы должны указать пространство имен System.IO и добавить ImageList в вашу форму. Установите его ImageSize на красивый размер для ваших изображений.

Тогда используйте код, приведенный ниже, чтобы сделать все остальное! Он загружает все файлы в папку как в ImageList, так и в ItemsComboBox. Обратите внимание, что он загружает не имена файлов, а FileInfo объектов, так что он может легко отображать имена без пути. Также обратите внимание, что для отображения изображений в CombBox он должен быть owner-drawn, который, как вы можете видеть это довольно прямо вперед ..

Вот код, чтобы использовать & исследования:

using System.IO; 
    //.. 

    // load whereever you like 
    // e.g. in the From.Load event or after InitializeComponent(); 

    var images = Directory.GetFiles(yourImageFolder, "*.jpg"); 
    foreach (string file in images) 
    { 
     imageList1.Images.Add(file, new Bitmap(file)); 
     comboBox1.Items.Add(new FileInfo(file)); 
    } 
    comboBox1.DrawMode = DrawMode.OwnerDrawFixed; 
    comboBox1.DrawItem += comboBox1_DrawItem; 
    comboBox1.ItemHeight = imageList1.ImageSize.Height; 


    void comboBox1_DrawItem(object sender, DrawItemEventArgs e) 
    { 
    FileInfo FI = (FileInfo)comboBox1.Items[e.Index]; 
    e.Graphics.DrawImage(imageList1.Images[FI.FullName], e.Bounds.Location); 
    e.Graphics.DrawString(FI.Name, Font, Brushes.Black, 
      e.Bounds.Left + imageList1.ImageSize.Height + 3, e.Bounds.Top + 4); 
    } 
Смежные вопросы