Keresés

Új hozzászólás Aktív témák

  • VIC20

    őstag

    válasz Jester01 #1058 üzenetére

    Elmondom, hogy is van ez nálam.

    Van ugye a formon egy ListView vezérlő, ami eléggé el nem ítélhető módon a ListView1 nevet viseli.

    Az inicializáló részben a következők történnek:

    ListView1.ColumnHeaders.Add 1, , "Címke", 900
    ListView1.ColumnHeaders.Add 2, , "Leírás", 8000
    ListView1.ColumnHeaders.Add 3, , "Típus", 5000
    ListView1.ColumnHeaders.Add 4, , "Dátum", 1500

    Vagyis kap négy oszlopot. (Az első név félrevezető: a címke valójában a sorszámot jelenti.)

    Ezeket a következőképpen töltöm fel.

    'A listview vezérlő feltöltése
    If Tombmeret > 0 Then
    For i = 1 To Tombmeret
    If AdatBazis(i).hasznalt = True Then
    a$ = "A" & Str(i) 'Sajnos számot még füzér alakban sem fogad el a hülye listview vezérlő, ezért egy betű kell elé. De ez komoly, még str(i)-t sem enged magába tölteni.
    FoAblak.ListView1.ListItems.Add , a$, Str(i)
    FoAblak.ListView1.ListItems(a$).SubItems(1) = Trim(AdatBazis(i).leiras)
    FoAblak.ListView1.ListItems(a$).SubItems(2) = Tipus_szoveggel(AdatBazis(i).tipus)
    FoAblak.ListView1.ListItems(a$).SubItems(3) = AdatBazis(i).datum
    End If
    Next i
    End If

    A rendező rész a következő:

    Private Sub ListView1_ColumnClick(ByVal ColumnHeader As ColumnHeader)

    Dim a As Integer

    a = ColumnHeader.Index - 1

    ListView1.SortKey = ColumnHeader.Index - 1

    If ListView1.SortKey = a Then
    If ListView1.SortOrder = lvwAscending Then
    ListView1.SortOrder = lvwDescending
    ElseIf ListView1.SortOrder = lvwDescending Then
    ListView1.SortOrder = lvwAscending
    End If
    End If

    ListView1.Sorted = True
    End Sub

    Ezzel vidáman rendez pl. dátum szerint is oda-vissza, de az első oszlop (ami a sorszám lenne) a szokásos hibát produkálja: a 10 nem a 9 után jön, hanem az 1 után (ABC szerinti rendezés).

    Mit lehet tenni?

Új hozzászólás Aktív témák

Hirdetés