Díl 9.   zodpovězená otázka

VB.NET, WinForms

v článku

http://www.vbnet.cz/clanek--34-vb_net_od...

je kód resp. řádek kterým můžu informace z listviewu přenest třeba do labelu nebo textboxu

použil jsem ho zde

Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
        lb0.Text = ListView1.SelectedItems(0).SubItems(2).Text


    End Sub

když kliknu na položku v listu tak mi určitá informace skočí do labelu ale když kliknu na jinou abych se mi vypsala jiný tak mi vyběhne toto a vubec nevim proč...

InvalidArgument=Value of '0' is not valid for 'index'.

Parameter name: index

před tim mi to nedělalo... asi jsem něco zmáčkl špatně vubec nevim co :(

nahlásit spamnahlásit spam 0 odpovědětodpovědět

jo už to mam nechtěně jsem si smazal podmínku

 If ListView1.SelectedItems.Count = 0 Then Exit Sub

zajímavé chybu hledám přes hodinu a vždy když hodim Help na forum tak ji najdu :D

Díky všem :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud je nějaká položka v ListViewu skutečně vybraná, potom nemá třetí podpoložku (nebo jak to nazvat). U takovéhoto kódu musí být předpoklad, že každá položka v ListViewu bude mít alespoň tři podpoložky.

Výše uvedeným kódem jste ošetřil pouze vybrání položky, nikoliv nutný počet podpoložek.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

už jsem na to přišel.. a tou podpodložkou jste myslel asi sloupec ne ?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

On to není sloupec, ale skutečně podpoložka, která je v kolekci ListViewItem.SubItems. Pravda je, že vizuálně se to potom zobrazuje ve sloupcích.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

a když budu chtít aby při kliknutí na první "podpoložku" se provedlo tohle a při kliknutí na druhou "podpoložku" zase támhle to tak bych to napsal jak ?

jediné na co jsem přišel je

 Private Sub ListView1_ColumnClick....
End Sub

ale to platí pro jakýkoli sloupec..

byla by ještě jiná možnost než to udělat přes podmínky ?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To u ListViewu udělat nelze. Lze odchytit pouze klepnutí na položku jako celek (má to svoje logické důvody). ColumnClick je událost pro klepnutí na záhlaví sloupce, vhodné například pro přepínání vzestupného a sestupného řazení.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

tu sestupnost jsem chtěl právě udělat když kliknu na první sloupec tak aby se mi položky seřadily od největší po nejmenší takže když mam v prvním sloupci třeba výplaty zaměstnanců tak aby se mi seřadily od toho kdo bere nejvíc až po toho co nebere nic.. druhej sloupec bude zase obsahovat výšku zaměstnanců tak taky když kliknu tak se mi seřadí od nejvyššího po nejmenšího atd.. lítam po netu a nemužu nic najít akorát stejné otázky které trápí mě

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

použil jsem

 listView1.Sorting = SortOrder.Ascending

ale to mi seřadí pouze podle prvního sloupečku

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Neumíte ani hledat...

http://msdn.microsoft.com/en-us/library/...

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

no na hledání nejsem zrovna borec a at zkousim jak zkousim tak mi to porad nefacha

nahlásit spamnahlásit spam 0 odpovědětodpovědět

přesto ale díky :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V odkazu na MSDN je i funkční příklad s implementací ICompareru. Když to uděláte podle toho, musí to fungovat.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano je to tam ale nepovedlo se mi to rozchodit

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback