Как использовать ObjectListView, чтобы показать все изображения в списке изображений? - PullRequest
0 голосов
/ 29 декабря 2011

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

1 Ответ

2 голосов
/ 29 декабря 2011

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

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
...