CheckedListBox.ItemCheck   zodpovězená otázka

VB.NET, WinForms

Zdravím, mám problém s ovládacím prvkem CheckedListBox resp. s jeho událostí .ItemCheck. pokud do této události vložím následující kod, tak funkce nejdřív provede kod a potom zaškrtne políčko. Já bych potřeboval, to políčko mít obsaženo už v řetězci. Případně pokud to lze, jak vytáhnout nějaké pole hodnot se zaškrtnutým boxem ze seznamu? Děkuji předem.

        Dim FiltrText As String = ""
        For i As Integer = 0 To ChLB_Filtr.Items.Count() - 1
            If ChLB_Filtr.GetItemChecked(i) = True Then
                FiltrText &= ChLB_Filtr.Items(i) & ","
            End If
            'ChLB_Filtr.SetItemChecked(i, ChB_FiltrAll.Checked)
        Next
        TB_Filtr.Text = FiltrText

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

Pochopitelně že se zaškrtne až po provedení metody napojené na událost, je to kvůli tomu, že v metodě lze v případě nutnosti nastavit e.NewValue na jinou hodnotu. CurrentValue je aktuální hodnota zaškrtnutí, NewValue hodnota, která se má nastavit.

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

Děkuji za vysvětlení... A vede prosím Vás cesta jinudy, než to opatřovat v té funkci? Můžu samozřejmě vyvolat další funkci až po zašrtání všech políček, ale líbilo by se mi to, kdyby se to dělalo v běhu. Asi je to zbytečné... Spíš ze zajímavosti. A co se týče té druhé části dotazu?

"Případně pokud to lze, jak vytáhnout nějaké pole hodnot se zaškrtnutým boxem ze seznamu?"

Nemáte nějakou zkušenost? Děkuji za Váš čas.

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

Klidně je to možné zařídit v té funkci, jen je nutné místo GetItemChecked použít e.NewValue. Seznam zaškrtnutých položek lze získat pomocí System.Windows.Forms.CheckedListBox.CheckedIndices.

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