Dobrý den. Pomozte, prosím! Zkusil jsem už všechno možné, ale jsem bezradný. Objekt ListView má velice nepříjemnou (pro mě nepochopitelnou) vlastnost, kdy při označení několika položek se nezruší označení položky, na kterou bylo naposledy kliknuto. Pro Vaši lepší představu jsem jednoduchou aplikaci vytvořil a umístil sem: http://erasser.own.cz/listview.exe (má jenom 20 kB) Slibuji, že to není zavirované :). Po spuštění je automaticky označená první položka a pokud se pokusíte označit např. poslední tři řádky, první položka zůstane označená pořád. Toto jsem vyřešil ještě snadno:
ListView1.SelectedItem = Nothing
Jenže stejný problém nastává, jak jsem již zmínil, i po označení jednotlivé položky a následném označení několika (jiných) položek. Pak je moje metoda k ničemu, protože nemůžu přece rušit označení položky po kliknutí na ní. Tak jsem zkusil následující:
ListView1.SelectedItem.Selected = False
'nebo..
ListView1.ListItems.Item(1).Selected = False
Jak možná tušíte, tyto dvě akce neprovedli vůbec nic (viditelného). Objekt ListView má všechny vlastnosti původní, změnil jsem akorát MultiSelect = True. Ve všech typech zobrazení (Ikony, Seznam...) se to chová stejně. Mám neblahé tušení, že na to budu muset jít přes subclassing, obdobně jako když jsem bojoval s uzamčením šířky sloupce. Takhle to ale sám dohromady nedám.. Za Vaše rady a náměty děkuji.
|