Diskuze: [C#] listBox - barvy

C# .NET .NET (C# a Visual Basic) [C#] listBox - barvy American English version English version

Avatar
Lukáš Křehula
Redaktor
Avatar
Lukáš Křehula:

Rád bych se zeptal, jestli lze nějak nastavit, aby každá položka listBoxu (ten obdélníček před označením měl nějakou určitou barvu.
Díky za odpověď.

 
Odpovědět 26.5.2014 19:16
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Lukáš Křehula
Jan Vargovský:

Lze, ale je to dost složité :) musíš si udělat vlastní vykreslování jednotlivých itemů, kde bys vykreslil čtverec a pak ještě ten text ... Prostě sraní :)

 
Nahoru Odpovědět 26.5.2014 19:37
Avatar
Lukáš Křehula
Redaktor
Avatar
Lukáš Křehula:

Mmm... tak do toho radši nepůjdu :D
A co barva textu? To by šlo?

 
Nahoru Odpovědět 26.5.2014 20:04
Avatar
Gramli
Redaktor
Avatar
Odpovídá na Lukáš Křehula
Gramli:

Jestli umíš trošku anglicky tak tady je to vypracovane: http://www.codeproject.com/…ColorListBox

kdyby ne tak ti to nějak přeložím :)

Nahoru Odpovědět 26.5.2014 20:28
Kdo to říká ten to je...
Avatar
rwn
Člen
Avatar
Odpovídá na Lukáš Křehula
rwn:

Kdysi jsem to taky řešil, a udělal jsem to jak tady říkal kolega s tím vykreslováním. Dost záleží ale co všechno by to mělo umět v porovnání s listboxem, některý věci se dělaj blbě. Jako největší problém jsem tam třeba měl s vytvořením "uzlu", kterej by měl svoje položky s možností schovávat pro náhled, ale tak to už je docela dávno a dělal jsem to ve WF ještě. Jestli ale umíš WPF, tak tam něco takového udělat do listboxu není problém. :)

Nahoru Odpovědět 26.5.2014 22:06
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
rwn
Člen
Avatar
Odpovídá na Lukáš Křehula
rwn:

Aha, to jsem napsal špatně, já popisuju, jak jsem si vykresloval vlastní treeView :D, listBox by nemusel být moc složitej. V podstatě by stačilo si cyklem vykreslovat všechny položky, a posouvat se s každým cykelm o řádek, to by nemělo být problém udělat za 10minut. :) Taky jsem si ho kdysi udělal vlastní, jediný problém, který tam může nastat je s nastavením šířky listBoxu, aby to zobrazilo vždy celý text, já jsem to tehdy řešil tak, že jsem si kontroloval šířku textu a pokud by to překročilo listBox, tak jsem nechal konec vytečkovat, pomocí metody Replace pro text.. :)

Nahoru Odpovědět 27.5.2014 1:49
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
Lukáš Křehula
Redaktor
Avatar
Lukáš Křehula:

Děkuji za odpovědi.
Díval jsem se na ten návod s vykreslováním textu. Vypadá to dost jednoduše ale nevím jak bych to udělal s posuvníkem... udělám to úplně jinak.
Mimochodem, mám ještě jednu otázku. Vytvořil jsem label, ale nefunguje tam tabulátor skrz string (\t). Nevíte proč? Protože třeba \n funguje.
Díky.

 
Nahoru Odpovědět 27.5.2014 16:19
Avatar
Gramli
Redaktor
Avatar
Gramli:

Může to být tím, že slovo před tabulátorem je třeba o znak kratší než tabulátor(ten má taky svou délku), tudíž další slovo je kousek za slovem prvním. Zkus dát dva tabulátory za sebou jestli se to pohne.
viz tady: http://answers.unity3d.com/…t-works.html

Editováno 27.5.2014 17:33
Nahoru Odpovědět 27.5.2014 17:32
Kdo to říká ten to je...
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Lukáš Křehula
Jan Vargovský:

Label to jednoduše ignoruje. Jestli tam chceš nějaký posun, tak použij string.PadLeft(int) a nebo tam před to hoď několik mezer.

 
Nahoru Odpovědět 27.5.2014 17:41
Avatar
Gramli
Redaktor
Avatar
Odpovídá na Jan Vargovský
Gramli:

Když si vytvoříš string ve kterém je tabulátor a pak ho přiřadíš label.text, tak ten tabulátor bude ignorovaný?

Nahoru Odpovědět 27.5.2014 18:32
Kdo to říká ten to je...
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Gramli
Jan Vargovský:

Přesně tak, on tam má svojí hodnotu, ale vizuálně ho nevidíš.

 
Nahoru Odpovědět  +1 27.5.2014 19:09
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 11 zpráv z 11.