Vorgehensweise: Extrahieren des Symbols, das einer Datei in Windows Forms zugeordnet ist
Viele Dateien verfügen über eingebettete Symbole, die eine visuelle Darstellung des zugehörigen Dateityps bereitstellen. Beispielsweise enthalten Microsoft Word-Dokumente ein Symbol, das sie als Word-Dokumente identifiziert. Beim Anzeigen von Dateien in einem Listensteuerelement oder Tabellensteuerelement möchten Sie möglicherweise das Symbol anzeigen, das den Dateityp neben jedem Dateinamen darstellt. Sie können dies ganz einfach mithilfe der ExtractAssociatedIcon-Methode tun.
Beispiel
Im folgenden Codebeispiel wird veranschaulicht, wie das einer Datei zugeordnete Symbol extrahiert und der Dateiname und das zugehörige Symbol in einem ListView-Steuerelement angezeigt werden.
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();
}
Private listView1 As ListView
Private imageList1 As ImageList
Public Sub ExtractAssociatedIconEx()
' Initialize the ListView, ImageList and Form.
listView1 = New ListView()
imageList1 = New ImageList()
listView1.Location = New Point(37, 12)
listView1.Size = New Size(161, 242)
listView1.SmallImageList = imageList1
listView1.View = View.SmallIcon
Me.ClientSize = New System.Drawing.Size(292, 266)
Me.Controls.Add(Me.listView1)
Me.Text = "Form1"
' Get the c:\ directory.
Dim dir As New System.IO.DirectoryInfo("c:\")
Dim item As ListViewItem
listView1.BeginUpdate()
Dim file As System.IO.FileInfo
For Each file In dir.GetFiles()
' Set a default icon for the file.
Dim iconForFile As Icon = 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 Not (imageList1.Images.ContainsKey(file.Extension)) Then
' If not, add the image to the image list.
iconForFile = System.Drawing.Icon.ExtractAssociatedIcon(file.FullName)
imageList1.Images.Add(file.Extension, iconForFile)
End If
item.ImageKey = file.Extension
listView1.Items.Add(item)
Next file
listView1.EndUpdate()
End Sub
Den Code kompilieren
So kompilieren Sie das Beispiel:
Fügen Sie den vorherigen Code in ein Windows-Formular ein, und rufen Sie die
ExtractAssociatedIconExample
-Methode aus dem Konstruktor oder der Ereignisbehandlungsmethode Load des Formulars auf.Stellen Sie sicher, dass Ihr Formular den System.IO-Namespace importiert.
Siehe auch
.NET Desktop feedback