Listbox-posuv v listboxu řádků s více sloupci
Napsal: 06 pro 2012 17:14
Dobrý den,tak a je tu další zádrhel s Listboxem.
V listboxu mam několik řádků s 10 sloupci.A tu a tam bych potřeboval zaměnit určitý řádek buď o řád výš nebo o řád níže.
Kód co používám přesouvá pouze první sloupec a ostatní vymaže.Poradíte někdo prosím co s tím?
Zatím používám tyto kódy:
Private Sub Nahoru_Click()
If ListBox1.ListIndex <= 0 Then Exit Sub
PocetPolozek = ListBox1.ListCount
Dim DocasnySeznam()
ReDim DocasnySeznam(0 To PocetPolozek - 1)
'Naplnime pole položkami seznamu
For i = 0 To PocetPolozek - 1
DocasnySeznam(i) = ListBox1.List(i)
Next i
'určime vybranou položku
CisloPolozky = ListBox1.ListIndex
'Prohodíme položky
DocasnaPolozka = DocasnySeznam(CisloPolozky)
DocasnySeznam(CisloPolozky) = DocasnySeznam(CisloPolozky - 1)
DocasnySeznam(CisloPolozky - 1) = DocasnaPolozka
ListBox1.List = DocasnySeznam
'Změníme vybranou položku
ListBox1.ListIndex = CisloPolozky - 1
End Sub
Private Sub Dolu_Click()
If ListBox1.ListIndex = ListBox1.ListCount - 1 Then Exit Sub
PocetPolozek = ListBox1.ListCount
Dim DocasnySeznam()
ReDim DocasnySeznam(0 To PocetPolozek - 1)
'Naplníme pole položkami seznamu
For i = 0 To PocetPolozek - 1
DocasnySeznam(i) = ListBox1.List(i)
Next i
'Určíme vybranou položku
CisloPolozky = ListBox1.ListIndex
'Změníme vybranou položku
DocasnaPolozka = DocasnySeznam(CisloPolozky)
DocasnySeznam(CisloPolozky) = DocasnySeznam(CisloPolozky + 1)
DocasnySeznam(CisloPolozky + 1) = DocasnaPolozka
ListBox1.List = DocasnySeznam
'Změníme vybranou položku
ListBox1.ListIndex = CisloPolozky + 1
End Sub
V listboxu mam několik řádků s 10 sloupci.A tu a tam bych potřeboval zaměnit určitý řádek buď o řád výš nebo o řád níže.
Kód co používám přesouvá pouze první sloupec a ostatní vymaže.Poradíte někdo prosím co s tím?
Zatím používám tyto kódy:
Private Sub Nahoru_Click()
If ListBox1.ListIndex <= 0 Then Exit Sub
PocetPolozek = ListBox1.ListCount
Dim DocasnySeznam()
ReDim DocasnySeznam(0 To PocetPolozek - 1)
'Naplnime pole položkami seznamu
For i = 0 To PocetPolozek - 1
DocasnySeznam(i) = ListBox1.List(i)
Next i
'určime vybranou položku
CisloPolozky = ListBox1.ListIndex
'Prohodíme položky
DocasnaPolozka = DocasnySeznam(CisloPolozky)
DocasnySeznam(CisloPolozky) = DocasnySeznam(CisloPolozky - 1)
DocasnySeznam(CisloPolozky - 1) = DocasnaPolozka
ListBox1.List = DocasnySeznam
'Změníme vybranou položku
ListBox1.ListIndex = CisloPolozky - 1
End Sub
Private Sub Dolu_Click()
If ListBox1.ListIndex = ListBox1.ListCount - 1 Then Exit Sub
PocetPolozek = ListBox1.ListCount
Dim DocasnySeznam()
ReDim DocasnySeznam(0 To PocetPolozek - 1)
'Naplníme pole položkami seznamu
For i = 0 To PocetPolozek - 1
DocasnySeznam(i) = ListBox1.List(i)
Next i
'Určíme vybranou položku
CisloPolozky = ListBox1.ListIndex
'Změníme vybranou položku
DocasnaPolozka = DocasnySeznam(CisloPolozky)
DocasnySeznam(CisloPolozky) = DocasnySeznam(CisloPolozky + 1)
DocasnySeznam(CisloPolozky + 1) = DocasnaPolozka
ListBox1.List = DocasnySeznam
'Změníme vybranou položku
ListBox1.ListIndex = CisloPolozky + 1
End Sub