Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Martin Klein
Člen
Avatar
Martin Klein:25.10.2016 21:48

Ahoj, chtěl jsem se zeptat, jak můžu pomocí ListView udělat "obchod"... Vše už mám, ale nevím jak udělat:
Uživatel klikne na jeden item v ListView a já potřebuji zjistit jaký to byl a provést další příkaz... Nedokážu to dobře popsat... Moc díky za odpovědi

Odpovědět
25.10.2016 21:48
Martin Klein
Avatar
JK CZ
Člen
Avatar
Odpovídá na Martin Klein
JK CZ:26.10.2016 8:05

Tady je priklad v vb.net a winform double / click
( v c# to je podobne)

Private Sub lstOverview_DoubleClick(sender As Object, e As EventArgs) Handles lstOverview.DoubleClick
    Dim selectedItem = lstOverview.SelectedItems(0)
    ......

End Sub

Private Sub lstOverview_Click(sender As Object, e As EventArgs) Handles lstOverview.Click
    Dim selectedItem = lstOverview.SelectedItems(0)
    ......
End Sub
 
Nahoru Odpovědět
26.10.2016 8:05
Avatar
Martin Klein
Člen
Avatar
Odpovídá na JK CZ
Martin Klein:26.10.2016 12:22

Ok, díky moc, ale teď nemůžu přijít jak potom udělat podmínku:

Private Sub ListView1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.Click
        Dim selectedItem = ListView1.SelectedItems(0)
        If selectedItem = 0 Then

        End If
    End Sub

U

If selectedItem = 0 Then

mi to píše, že selecteditem není v integer a já nevím v čem je...

Díky moc

Nahoru Odpovědět
26.10.2016 12:22
Martin Klein
Avatar
JK CZ
Člen
Avatar
Odpovídá na Martin Klein
JK CZ:26.10.2016 13:25

Nevim presne v jakem sloupci je ta 0, tak posilam ukazku na prvni a druhy

If selectedItem.SubItems(0).Text = "0" Then 'Pokavad je to prvni sloupec
If selectedItem.SubItems(1).Text = "0" Then 'Pokavad je to druhy adt..
Editováno 26.10.2016 13:27
 
Nahoru Odpovědět
26.10.2016 13:25
Avatar
Martin Klein
Člen
Avatar
Martin Klein:26.10.2016 14:19

Ale já chci pouze zjistit jaký je vybraný item a udělat nějaký příkaz pokud to je item 0, jinak pokračovat dál a zase pokud je to item 1 udělat příkaz, jinak pokračovat dál... a takhle až k poslednímu itemu...
Něco jako

If (je vybraná položka 0) then (příkaz)
End if
If (je vybraná položka 1) then (příkaz)
End if
If (je vybraná položka 2) then (příkaz)
End if
If (je vybraná položka 3) then (příkaz)
End if

Díky moc

Nahoru Odpovědět
26.10.2016 14:19
Martin Klein
Avatar
HONZ4
Člen
Avatar
Odpovídá na Martin Klein
HONZ4:26.10.2016 18:14

V ListView doporučuji pracovat virtuálně (VirtualMode=true) a získávat index aktivní položky takto:
int index = MujListView.Se­lectedIndices[0] a to v události SelectedIndex­Changed
Prakticky nepředvedu, protože nedělám VB.

Editováno 26.10.2016 18:16
 
Nahoru Odpovědět
26.10.2016 18:14
Avatar
HONZ4
Člen
Avatar
Odpovídá na Martin Klein
HONZ4:26.10.2016 19:07

If selectedItem = 0 Then je blbě, správně to má být zhruba takto:

If  ListView1.SelectedItems[0].Index Is 0 Then

(ty závorky se u VB možná píší kulaté, nevím a zjišťovat se mi to nechce)

 
Nahoru Odpovědět
26.10.2016 19:07
Avatar
JK CZ
Člen
Avatar
JK CZ:26.10.2016 21:33

Asi takto:

Dim selectedItem = lstOverview.SelectedItems(0)
If selectedItem.Index = 0 Then ...
If selectedItem.Index = 1 Then ...

Honza to napsal drive, ale v C# :-)

 
Nahoru Odpovědět
26.10.2016 21:33
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.