Значок в многоколонном ListView - PullRequest
0 голосов
/ 02 января 2011

Я использую это:

Public Shared Sub FulfillListView(ByVal Icon As Icon, ByVal Item1 As String, ByVal Item2 As String, ByVal sender As Object, ByVal e As System.EventArgs)
    Dim imageListSmall As New ImageList()
    vehicles_prod.OpenOrdersLB.SmallImageList = imageListSmall
    Try
        Dim SubItem As New ListViewItem("", 0)
        imageListSmall.Images.Add(Icon)
        SubItem.SubItems.Add(Item2)
        SubItem.SubItems.Add(Item1)
        vehicles_prod.OpenOrdersLB.Items.AddRange(New ListViewItem() {SubItem})


    Catch ex As Exception
        MessageBox.Show(ex.Message, "=> FulfillListView")
    End Try
End Sub

Для полного заполнения многоколоночного ListView
В начале каждой строки (строки подпунктов) я хочу иметь значок, отличающийся каждыйвремя
Единственный значок, который я вижу, является последним введенным значком, и он одинаков для всех линий
Пожалуйста, помогите мне иметь разные значки в каждой строке.

1 Ответ

1 голос
/ 03 января 2011

Да, вы создаете список изображений снова и снова.И каждый элемент имеет один и тот же imageIndex, 0. Таким образом, элементы могут иметь только один и тот же значок, последний добавленный вами.Это решит проблему:

Public Shared Sub FulfillListView(ByVal Icon As Icon, ByVal Item1 As String, ByVal Item2 As String, ByVal sender As Object, ByVal e As System.EventArgs)
    If vehicles_prod.OpenOrdersLB.SmallImageList Is Nothing Then
        vehicles_prod.OpenOrdersLB.SmallImageList = New ImageList
    End If
    vehicles_prod.OpenOrdersLB.SmallImageList.Images.Add(Icon)
    Dim SubItem As New ListViewItem("", vehicles_prod.OpenOrdersLB.SmallImageList.Images.Count - 1)
    '' etc...

Но не делайте этого, если просмотр списка содержит много элементов.Список изображений станет довольно большим, возможно, с большим количеством дубликатов.Что делает это медленным.Явное управление списком изображений становится важным.Вы можете заполнить список изображений заранее с дизайнером, может быть, это уместно.

...