abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

    včera 12:22 | IT novinky

    V březnu byla oznámena spolupráce GrapheneOS s Motorolou. Nejnovější vlajka Motorola Signature 27 je první Motorola s oficiální podporou GrapheneOS. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.

    Ladislav Hagara | Komentářů: 0
    včera 04:55 | Nová verze

    Omarchy (Wikipedie) je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 4.5.0. Nově také pro Apple Silicon, konkrétně pro M1/M2/M3/Neo MacBooky.

    Ladislav Hagara | Komentářů: 3
    včera 03:22 | Nová verze

    Byla vydána nová stabilní verze 8.3 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 156 s bezpečnostními opravami z Chromia 157. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    5.11. 19:53 | Bezpečnostní upozornění
    V Xenu objevena zranitelnost. Chyba v mechanismu grant copy umožňuje škodlivému virtuálnímu stroji číst a přepisovat libovolnou paměť jiných VM včetně privilegované domény Dom0. Dotčené verze jsou Xen 4.6 a novější. V upstreamu jsou dostupné patche pro Xen 4.17 až 4.19 a vývojovou větev. Pro starší nepodporované verze 4.6–4.16 nejsou v XSA-523 přiloženy opravy.
    vencour | Komentářů: 1
    5.11. 16:55 | Nová verze

    Multimediální přehrávač mpv byl vydán ve verzi 0.42.0. Jde o větší balík změn po bezmála roce. Mimo jiné se lépe integruje s Waylandem nebo rozšiřuje podporu DVD/Blu-ray, např. umožňuje přehrávat rovnou obrazy médií (soubory iso).

    ʚĭɞ 🍉 | Komentářů: 0
    5.11. 12:22 | Nová verze

    Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.5.0. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    5.11. 12:11 | Nová verze

    Byla vydána (𝕏) nová verze 8.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    5.11. 04:22 | Nová verze

    Byla vydána verze R14.1.7 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 4
    5.11. 00:33 | Nová verze

    Bazzite (Wikipedie), tj. linuxová distribuce vycházející z Fedora Linuxu a optimalizována pro hraní počítačových her, byla vydána ve verzi 45. S Open Gaming Collective (OGC) jádrem a novým Easy Anti-Cheatem pro Linux (EAC Linux v2).

    Ladislav Hagara | Komentářů: 0
    4.11. 22:11 | Bezpečnostní upozornění

    MikroTik zveřejnil vlastní bezpečnostní upozornění potvrzující, že zranitelnost linuxového jádra postihuje také RouterOS 7. Jde o use-after-free při zpracování IPv4 TCP spojení s IP options. Zranitelnost se týká provozu směřujícího na TCP službu samotného routeru, nikoli paketů, které router pouze přeposílá. Opraveno v long-term od 7.24.6, v stable od 7.25.1 a devel od 7.26beta5.

    vencour | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2992 hlasů
     Komentářů: 35, poslední včera 23:27
    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: 465×
    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ákno • Nahoru

    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.