Как использовать ObjectListView для отображения всех изображений в списке изображений?

Как использовать ObjectListView для отображения всех изображений в списке изображений? На домашнем сайте ObjectListView они показали, как это сделать на С# (я не очень хорошо разбираюсь в С# и делегатах). Но я не могу заставить его работать в VB.net.


person Failed_Noob    schedule 29.12.2011    source источник


Ответы (1)


Вот прямой перевод их примера:

Me.mainColumn.ImageGetter = Function(row As Object) Do
    Dim key As String = Me.GetImageKey(row)
    If Not Me.listView.LargeImageList.Images.ContainsKey(key) Then
        Dim smallImage As Image = Me.GetSmallImageFromStorage(key)
        Dim largeImage As Image = Me.GetLargeImageFromStorage(key)
        Me.listView.SmallImageList.Images.Add(key, smallImage)
        Me.listView.LargeImageList.Images.Add(key, largeImage)
    End If
    Return key
End Function

Это будет работать только с самой последней версией VB.NET, поскольку она использует встроенную функцию. Вы можете изменить его следующим образом для более старых версий:

Создайте функцию, похожую на:

Public Function GetImageFromList(row As Object) As String
        Dim key As String = Me.GetImageKey(row)
        If Not Me.listView.LargeImageList.Images.ContainsKey(key) Then
            Dim smallImage As Image = Me.GetSmallImageFromStorage(key)
            Dim largeImage As Image = Me.GetLargeImageFromStorage(key)
            Me.listView.SmallImageList.Images.Add(key, smallImage)
            Me.listView.LargeImageList.Images.Add(key, largeImage)
        End If
        Return key
End Function

А затем установите геттер изображения для столбца, например:

Me.mainColumn.ImageGetter = AddressOf GetImageFromList
person Jay    schedule 29.12.2011
comment
Что это за геттер изображений? Это элемент управления в vb.net? Будет ли это работать в VS2010? - person Failed_Noob; 29.12.2011
comment
ImageGetter — это свойство делегата в столбце. Вам нужно написать методы для получения изображений из вашего списка изображений по ключу. Это были просто примеры, которые они предоставили - person Jay; 29.12.2011