TreeNode do List – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

TreeNode do List – .NET – Fórum – Programujte.comTreeNode do List – .NET – Fórum – Programujte.com

 

Vlákno bylo úspěšně vloženo.
Pokud sám přijdeš na řešení, nezapomeň ho sem přidat!
AttilaA0
Newbie
1. 9. 2013   #1
-
0
-

Na formuláři mám komponentu TreeView. Potřebuji projít některé její nody a pokud splňují podmínky, uložit je do listu.

TreeNode node; // Nody, které kontroluji

var lPlatne = new List<TreeNode>();   // List, do kterého ukládám vyhovující nody

lPlatne.Add(node); // Přidám do listu další node

foreach (TreeNode tn in lPlatne) // Na závěr uložené nody obarvím

{

              tn.BackColor = Color.Aqua;

}

Problém je v tom, že tímto způsobem se uloží a obarví pouze poslední node. V čem je chyba?

Díky.

Nahlásit jako SPAM
IP: 178.72.192.–
TheOndrap+2
Super člen
1. 9. 2013   #2
-
0
-

Ahoj, to je celý kód? já jestli se nepletu tak tam vidím jenom jednou přidávaný obj typu TreeNode

Nahlásit jako SPAM
IP: 88.102.250.–
ZČU v Plzni je mnohem víc, než jenom právnická fakulta !!
Fakulta aplikovaných věd www.fav.zcu.cz
"Když nedokážete říci věci jednoduše, pak jim dostatečně nerozumíte"
AttilaA0
Newbie
1. 9. 2013   #3
-
0
-

#2 TheOndrap
Nody přidávám v cyklu:

node = node2.Nodes.Add("xy");

Žádný nechybí, v tom problém není. Problém je v tom, že se neuloží do listu.

Nahlásit jako SPAM
IP: 178.72.192.–
KIIV
~ Moderátor
+43
God of flame
1. 9. 2013   #4
-
0
-

a kolik polozek ma ten list? zkousel jsi treba menit barvy pro kazdou polozku jinak a chvili cekat aby bylo videt co se kde deje? (napriklad ze by se vkladala reference na tu promennou node a pak bys mel plnej list stejnyho objektu) - ale netusim jak to v .netu facha

Nahlásit jako SPAM
IP: 213.220.241.–
Program vždy dělá to co naprogramujete, ne to co chcete...
TheOndrap+2
Super člen
1. 9. 2013   #5
-
0
-

#3 AttilaA
Počkej :) pokud je v cyklu ukládáš do listu, tak se do něj uloží, na to bych dal ruku do ohně. Druhá věc je to, co říká KIIV ... zkus si po tom "přidávacím" procesu vypsat velikost toho listu. Něco jako IPlatne.size.

Nahlásit jako SPAM
IP: 88.102.250.–
ZČU v Plzni je mnohem víc, než jenom právnická fakulta !!
Fakulta aplikovaných věd www.fav.zcu.cz
"Když nedokážete říci věci jednoduše, pak jim dostatečně nerozumíte"
P
~ Anonymní uživatel
212 příspěvků
2. 9. 2013   #6
-
0
-

Fajn, tak nas prosim prestan napinat a zjistovat v cem problem neni a dej sem celej kod.

Nahlásit jako SPAM
IP: 85.93.116.–
VladislavK0
Super člen
2. 9. 2013   #7
-
0
-
Nerozhodně

for AttilaA

Sleduji nejen toto vlákno ale stejně jako v tomto http://programujte.com/forum/vlakno/25207-delegat-textbox/ vlastně není na co odpovídat.

Kluci - zkuste podávat dotazy tak aby dávaly smysl,

v opačném případě bych to viděl spíše tak, že by si to chtělo nejdříve přečíst něco o obecné programátorské činnosti a teprve potom pokládat otázky proč to čí ono nefunguje????

vlastně není na co odpovídatsorry ale berte to tak jak jsem to napsal

Nahlásit jako SPAM
IP: 37.48.42.–
Manželka programátora pošle svého muže koupit chleba s dovětkem kdyby měly housky přines jich deset! Co přinese programátor??
AttilaA0
Newbie
2. 9. 2013   #8
-
0
-

#7 VladislavK
Celý kód v originále vložit nemůžu, protože je roztahaný na více místech a nebyl by srozumitelný. Napíšu ale krátký příklad, který vysvětlí podstatu problému.

Nahlásit jako SPAM
IP: 178.72.192.–
AttilaA0
Newbie
2. 9. 2013   #9
-
0
-

Tady je ukázkový příklad:

        private void button1_Click(object sender, EventArgs e)
        {
            TreeNode node1 = treeView1.Nodes.Add("Level 1");
            var lNody = new List<TreeNode>();

            for (int i = 0; i < 10; i++)
            {
                TreeNode node2 = node1.Nodes.Add("Level 2");
                lNody.Add(node2);               
            }

            foreach (TreeNode tn in lNody)
            {
                tn.BackColor = Color.Aqua;
            }
        }

Chtěl jsem na něm ukázat, že se do listu uloží (a tím obarví) pouze poslední node. Bohužel ale příklad funguje a obarví se všechny nody.

Odcházím, abych se nad sebou hluboce zamyslel.

Nahlásit jako SPAM
IP: 178.72.192.–
AttilaA0
Newbie
2. 9. 2013   #10
-
0
-

Chyba odhalena. Díky nepřehlednosti kódu jsem si nevšiml, že si list neustále vyprazdňuji. Proto v něm byl vždy jen poslední node.

Nahlásit jako SPAM
IP: 178.72.192.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 13 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý