abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    14.6. 12:11 | IT novinky

    Google Blog ČR informuje, že mobilní aplikaci Gemini a NotebookLM lze používat už také v Česku.

    Ladislav Hagara | Komentářů: 18
    14.6. 11:33 | Nová verze

    Byla vydána nová major verze 8 duálně licencovaného open source frameworku JUCE (Wikipedie, GitHub) pro vývoj multiplatformních audio aplikací.

    Ladislav Hagara | Komentářů: 0
    14.6. 11:11 | IT novinky

    Od 18. června bude možné předobjednat notebook DC-ROMA RISC-V LAPTOP II od společnosti DeepComputing s osmijádrovým 64-bit RISC-V AI CPU a s předinstalovaným Ubuntu.

    Ladislav Hagara | Komentářů: 2
    13.6. 23:55 | Nová verze

    Byla vydána verze 1.79.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    13.6. 14:33 | Zajímavý článek

    Byly zveřejněny výsledky průzkumu (infografika) mezi uživateli FreeBSD.

    Ladislav Hagara | Komentářů: 0
    13.6. 13:22 | IT novinky

    Na konferenci DevConf.CZ 2024 je na stánku Furi Labs prezentován linuxový telefon FuriPhone FLX1. Jeho cena 499 dolarů.

    Ladislav Hagara | Komentářů: 17
    13.6. 00:11 | Nová verze

    Bylo vydáno Eclipse IDE 2024-06 aneb Eclipse 4.32. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 1
    12.6. 22:00 | Nová verze

    Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-2 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.

    Ladislav Hagara | Komentářů: 0
    12.6. 15:44 | Nová verze

    Po roce od vydání verze 15.5 bylo vydáno openSUSE Leap 15.6. Přehled novinek v nejnovější verzi této linuxové distribuce v oznámení o vydání a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    12.6. 12:44 | Nová verze

    Byla vydána nová verze 256 správce systému a služeb systemd (GitHub). Nově mimo jiné s run0 jako alternativou k sudo.

    Ladislav Hagara | Komentářů: 23
    Rozcestník

    Dotaz: [C#] foreach, delete textbox a label

    22.11.2016 10:25 Lanny2013 | skóre: 2
    [C#] foreach, delete textbox a label
    Přečteno: 366×
    Příloha:
    Dobrý den, snažím se odstranit určité Texboxy a Labely které jsou dynamicky vytvořené v Groupboxu. Chtěl bych, ale odstranit jenom některé. Problém je v tom, že se mi vždy podaří odstranit všechny Labely ale Textbox pouze ten první. Můžete mi prosím poradit kde mám chybu. předem děkuji.


    Řešení dotazu:


    Odpovědi

    22.11.2016 12:43 Jamie
    Rozbalit Rozbalit vše Re: [C#] foreach, delete textbox a label
    Chtělo by to sem dát i ten kód, který ty prvky vytváří. Navíc by se kolekce, kterou procházíš přez foreach, neměla měnit.
    skunkOS avatar 1.12.2016 09:02 skunkOS | skóre: 27 | blog: Tak nějak
    Rozbalit Rozbalit vše Re: [C#] foreach, delete textbox a label
    Přesně tak. Kdykoliv dochází k nějakým destrukcím v kolekci, kterou iteruješ přes foreach, je to náběh na chybu. Když se něco v kolekci mění, použij for.
    http://martinrotter.github.io
    22.11.2016 12:50 Jamie
    Rozbalit Rozbalit vše Re: [C#] foreach, delete textbox a label
    Btw. které "některé" chceš odstraňovat. Neměl by v každém foreach být ještě for (místo použití h a i)?
    22.11.2016 17:16 Lanny2013 | skóre: 2
    Rozbalit Rozbalit vše Re: [C#] foreach, delete textbox a label
    Ahoj posílám čás kodu, který vkládá prvky. Zde si ale myslím, že chyba není.
    Label label2 = new Label();
    label2.Name = "labelg" + TxtInt;
    label2.Top = LabelTop + 30;
    label2.Width = 10;
    label2.Left = LabelLeft + 101;
    label2.Text = "-";
    Form3.form4.groupBox3.Controls.Add(label2);
    
    TextBox txt2 = new TextBox();
    txt2.Name = "txtbox" + TxtInt;
    txt2.Top = TextboxTop + 30;
    txt2.Left = TextboxLeft + 52;
    txt2.Width = 114;
    txt2.Height = 20;
    txt2.Text = StandartUcetAdd.cislo;
    Form3.form4.groupBox3.Controls.Add(txt2);
    
    TxtInt++;
    
    Co se téče cyklu for tak ten jsem nechtěl použít, jelikož neznám konečný počet prvků dopředu. Nicméně jsem to upravil tak, že nejprve zjistím celkový pořet prvků.
    int count =  groupbox.Controls.Count;
    potom přes for vybrat jenom určité prvky do určitého čísla int count. I tak to ale nefunguje chová se to úplně stejně jako bez for. A to tak, že když mám jeden foreach třeba na textbox tak je vše v pořádku. Jakmile za to přidám druhý foreach na vymazání lablelu tak se provede jenom ten první foreach a ten druhý se neprovede. Když je prohodím tedy prvně chci vymazat label a potom textbox. Tak je to přesně naopak label vymaže, ale textboxy už ne.
    22.11.2016 19:26 MadCatX
    Rozbalit Rozbalit vše Re: [C#] foreach, delete textbox a label
    A nevyhodí ti to nějakou vyjímku? Upravovat si „pod rukama“ vektor, který procházíš cyklem není dobrý nápad. Dej si do toho kódu breakpoint a vykrokuj si to debuggerem.
    pavlix avatar 22.11.2016 19:35 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: [C#] foreach, delete textbox a label
    Mimochodem, jak se to správně dělá v C#? V pythonu je to triviální.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    23.11.2016 09:59 kaaja | skóre: 24 | blog: Sem tam něco | Podbořany, Praha
    Rozbalit Rozbalit vše Re: [C#] foreach, delete textbox a label
    Správně jde například použít .ToList() z LINQ, které prakticky klonuje kolekci do listu. A tu už při procházení neměníš.
    pavlix avatar 23.11.2016 10:28 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: [C#] foreach, delete textbox a label
    Používám list(something) v Pythonu, takže je to zjevně ekvivalentní.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    Řešení 1× (Lanny2013 (tazatel))
    30.11.2016 16:30 Lanny2013 | skóre: 2
    Rozbalit Rozbalit vše Re: [C#] foreach, delete textbox a label
    Omlouvám se za pozdní odpověď. Přesně jak píšeš nakonec jsem ten kod změnil úplně. Použil jsem jak jsi psal LINQ a dosáhl jsem požadovaného výsledku. Děkuji

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.