Значки элементов с списком и списком изображений - PullRequest
0 голосов
/ 13 января 2012

Здравствуйте. У меня есть представление списка, которое открывает элементы внутри папки и отображает их.Я хочу знать, есть ли способ, чтобы представление списка отображало значки также, возможно, используя shell32 или список изображений.Вот код:

Imports System.IO
Imports System.Xml
Imports System.Runtime.InteropServices
Imports Microsoft.VisualBasic

Public Class cv7import

Private Sub cv7import_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim caminho As String
    caminho = "C:\Documents and Settings\Software\Ambiente de trabalho\1"



    lstvicon.View = View.Details
    lstvicon.GridLines = False
    lstvicon.FullRowSelect = True
    lstvicon.HideSelection = False
    lstvicon.MultiSelect = True


    lstvicon.Columns.Add("Nome")
    lstvicon.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize)

    Dim DI As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(caminho)

    Dim files() As System.IO.FileInfo = DI.GetFiles

    Dim file As System.IO.FileInfo

    Dim li As ListViewItem
    For Each file In files
        li = lstvicon.Items.Add(file.Name)
        li.Tag = file.FullName
    Next
End Sub


End Class

Вот два изображения того, как это выглядит и как я хочу, чтобы это выглядело, если это помогает.

Как я хотел: http://imageshack.us/photo/my-images/21/wantd.png/

Как это выглядит: http://imageshack.us/photo/my-images/13/needk.png/

Ответы [ 2 ]

1 голос
/ 13 января 2012

Ну, для начала вам нужно найти расширение файла:

Dim file As String = "C:\scratch\newfile.txt"
Dim ext as string = IO.Path.GetExtension(file)

Тогда вам нужно найти эту запись в разделе HKEY_CLASSES_ROOT реестра:

HKEY_CLASSES_ROOT\.txt

Значение по умолчанию в этом ключе дает тип файла, связанный с этим файлом, в моем случае txtfile (помните, что разные реестры могут иметь разные значения в зависимости от того, что пользователь установил и какие программы установлены)

Затем вам нужно поискать эти значения DefaultIcon введите HKEY_CLASSES_ROOT:

HKEY_CLASSES_ROOT\txtfile\DefaultIcon

Значение по умолчанию здесь дает вам местоположение значка и номер значка в моем случае:

%SystemRoot%\system32\imageres.dll,-102

С этого момента, я думаю, вам может потребоваться ExtractIconEX API извлечь значок. Эта ссылка также может быть полезна

0 голосов
/ 13 января 2012

ListViewItems имеют свойства ImageList, ImageIndex и ImageKey. Добавьте элемент управления ImageList в форму (из группы компонентов на панели инструментов). Вы можете добавить изображения в ImageList, нажав «Выбрать изображения» под сеткой свойств, когда выбран список изображений. Затем назначьте список изображений и индекс изображений или ключ изображения для элементов списка.

...