Практическое руководство. Извлечение связанного с файлом значка в Windows Forms
Большое количество файлов с внедренными значки, которые обеспечивают визуальное представление сопоставленного типа файлов. Например документы Microsoft Word содержит значок, который определяет их как документы Word. При отображении файлов в список элементов управления, или таблицы, можно отобразить значок, представляющий тип файла рядом с именами файлов. Вы можете сделать это с помощью ExtractAssociatedIcon метод.
Пример
В следующем примере кода показано, как извлекать значок, связанный с файлом и отобразить имя файла и его значок в ListView элемента управления.
ListView listView1;
ImageList imageList1;
public void ExtractAssociatedIconEx()
{
// Initialize the ListView, ImageList and Form.
listView1 = new ListView();
imageList1 = new ImageList();
listView1.Location = new Point(37, 12);
listView1.Size = new Size(151, 262);
listView1.SmallImageList = imageList1;
listView1.View = View.SmallIcon;
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.Add(this.listView1);
this.Text = "Form1";
// Get the c:\ directory.
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(@"c:\");
ListViewItem item;
listView1.BeginUpdate();
// For each file in the c:\ directory, create a ListViewItem
// and set the icon to the icon extracted from the file.
foreach (System.IO.FileInfo file in dir.GetFiles())
{
// Set a default icon for the file.
Icon iconForFile = SystemIcons.WinLogo;
item = new ListViewItem(file.Name, 1);
// Check to see if the image collection contains an image
// for this extension, using the extension as a key.
if (!imageList1.Images.ContainsKey(file.Extension))
{
// If not, add the image to the image list.
iconForFile = System.Drawing.Icon.ExtractAssociatedIcon(file.FullName);
imageList1.Images.Add(file.Extension, iconForFile);
}
item.ImageKey = file.Extension;
listView1.Items.Add(item);
}
listView1.EndUpdate();
}
Компиляция кода
Чтобы скомпилировать этот пример:
Вставьте приведенный выше код в форму Windows и вызовите
ExtractAssociatedIconExample
метод из конструктора формы или Load метод обработки событий.Необходимо убедиться, что форма импортирует System.IO пространства имен.