C# - Enabled na Check boxu – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C# - Enabled na Check boxu – .NET – Fórum – Programujte.comC# - Enabled na Check boxu – .NET – Fórum – Programujte.com

 

polerok0
Návštěvník
6. 3. 2010   #1
-
0
-

Zdravim, potreboval bych pomoct s nastavovanim Enabled na Check boxu. Mam - li nazev daneho ChB treba A, tak prikazem

A.Enabled = false; 
jej snadno deaktivuji. Jenze moje ChB se jmenuji 1 az 25 a potreboval bych je deaktivovat vsechny - az na 2, kdy pokazde jsou jine a to pomoci cyklu. A zde nastava problem, protoze moje verze nefunguje...
for (int i = 1; i <= 25; i++)

{
if (Convert.ToString(i) != numbers_of_change[0] && Convert.ToString(i) != numbers_of_change[1])
{
i.Enabled = false;
}
}


To i mi to proste nebere, zkousel jsem Conver, zkousel jsem vsechno mozne, nic... prosim o radu....

Nahlásit jako SPAM
IP: 85.70.48.–
yterbium0
Stálý člen
6. 3. 2010   #2
-
0
-

zdravím,

ten cyklus je hneď chybný kvôli tomu, že
"i.Enabled"

to i máš ako premenú cyklu typu int, to nemáš checkbox.

Ak máš pole checkboxov alebo List<> , stačí ísť cez cyklus foreach a porovnávať ich názvy s hľadaným názvom, ak sa nezhodujú, dať .enable false.

jednoduchšia konverzia na strink:
i.ToString();

Nahlásit jako SPAM
IP: 95.102.20.–
polerok0
Návštěvník
6. 3. 2010   #3
-
0
-

No, moc jsem Te nepochopil :o( Mam tableLayoutPanel, v nem mam 25 ChB pojmenovanych 1 az 25. A ja bych potreboval, aby se ve chvili, kdy se uzivatel 2 z nich oznaci vsechny ostatni - neoznacene zamkly.... Ty ktere jsou oznacene si ukladam do pole Stringu (numbers_of_change)... Takze pokud by jsi me mohl navest jeste jednou trochu rozsahleji mozna? Dekuji predem...

Nahlásit jako SPAM
IP: 85.70.48.–
6. 3. 2010   #4
-
0
-

To polerok : Drž si někde odkazy na ty checkboxy (v poli/kolekci) a pak s nima v cyklu nějak pracuj - nebo procházej seznam prvků ve vlastnosti Controls nadřazeného containeru. Není na tom nic komplikovaného.

Nahlásit jako SPAM
IP: 88.100.81.–
Dušan Janošík | web: djanosik.cz, @djanosik
polerok0
Návštěvník
6. 3. 2010   #5
-
0
-

To djanosik : Mam v poli nazvy tech ChB, ktere nechci, aby byly zablokovany. Problem je v tom, ze nejak pracuj proste nejde, protoze nejsem schopen rici: nazev_CHB.Name=false; NEvim jestli je to tim, ze nazev je treba 23 nebo tim, ze ten nazev je puvode A a teprve po prvnim kole hry ze prejmenuje na treba 23....
Vlastnost Controls mi nic nerika :o(

Nahlásit jako SPAM
IP: 85.70.48.–
Chrasty
~ Redaktor
+4
Posthunter
6. 3. 2010   #6
-
0
-

Zkus použít cyklus foreach na právě zmíněnou kolekci/vlastnost Controls tvého formuláře:

foreach(CheckBox cb in this.Controls)

{
cb.Enabled = false;
}

Můj příklad jednoduše vypne všechny CheckBoxy na formuláři, uprav si to jak potřebuješ, aby to vyplo jenom ty co chceš.

Nahlásit jako SPAM
IP: 193.179.196.–
polerok0
Návštěvník
7. 3. 2010   #7
-
0
-

V tom pripade mi to pro zmenu ve chvili, kdy to ma nastat vyhodi vyjimku ze ktere jsem krapet na vetvi... "Objekt typu System.Windows.Forms.Button nelze přetypovat na typ System.Windows.Forms.CheckBox."

Nahlásit jako SPAM
IP: 85.70.48.–
7. 3. 2010   #8
-
0
-

To polerok : Názvy ti jsou obecně k ničemu, potřebuješ odkazy na dané prvky. Název je typu String a ne CheckBox.

To polerok : Tak samozřejmě musíš zajistit, abys pracoval jen s těmi CheckBoxy a navíc jen s těmi, které potřebuješ.

foreach(var control in this.Controls) 

{
if(control is CheckBox)
{
((CheckBox)control).Enabled = false;
}
}
To máš úkol do školy, že ti C# mnoho neříká?

Nahlásit jako SPAM
IP: 88.100.81.–
Dušan Janošík | web: djanosik.cz, @djanosik
polerok0
Návštěvník
7. 3. 2010   #9
-
0
-

To djanosik :
Zajimave.... Protoze kdyz mam na zacatku ChB s nazvem A, tak jsem normalne schopen rici A.Enabled = false; Z toho jsem usuzoval ,ze jsem schopen rici neco podobneho kdykoliv a jakkoliv.... Muzu se teda prosim dotazat jak zajistim Ty ODKAZY - resketive co to je?

Jo, mam to jako projekt. Problem je v tom, ze C# mam prvnim semestrem po 3 semestrech JAVY. Borec to navic probira stylem, ze na prednasce proleti par prezentaci, pak namlati na notebooku nejaky kod, nez se vzpamatujes, tak to zavre a dela jiny. A na cviku pak na tebe najizdi....

Nahlásit jako SPAM
IP: 85.70.48.–
7. 3. 2010   #10
-
0
-

Jestli to máš po 3 semestrech Javy, tak je situace ještě horší, protože jazyky Java a C# jsou si principiálně dost podobný a pokud jsi Javu neflákal, neměl bys mít takové problémy. To tvoje A je název proměnné, která drží odkaz na ten CheckBox, proto to lze takhle použít. Já bych to tím uzavřel, protože takto základní věci je třeba nastudovat a ne řešit v diskuzi.

Nahlásit jako SPAM
IP: 88.100.81.–
Dušan Janošík | web: djanosik.cz, @djanosik
polerok0
Návštěvník
7. 3. 2010   #11
-
0
-

To by me teda zajimalo jak to, ze v JAVE mi ten samy-respektive velmi podobny SW jede normalne....

Asi jsem skutecne blbej, ale proste nedokazu pochopit, proc mi to volani itemu nejde....

Nahlásit jako SPAM
IP: 85.70.48.–
7. 3. 2010   #12
-
0
-

To polerok : Nemám sice s Javou tolik zkušeností jako s C#, ale obávám se, že takhle ti to tam fungovat nemůže.

Nahlásit jako SPAM
IP: 88.100.81.–
Dušan Janošík | web: djanosik.cz, @djanosik
velurex0
Stálý člen
7. 3. 2010   #13
-
0
-

Dá se to zadání chápat také tak že nechceš znepřístupnit 23 z 25 checkboxů, ale všechny nezaškurnuté checkboxy? Potom jednoduše v cyklu které tady nahnodili Chrasty a djanosik upravíš tělo na

checkBox.Enabled = checkBox.Checked;


Další problém proč ti to nejede by mohl být v tom, že pánové berou kontroly fomuláře (this.Controls), ale možná by se měl použít panel v kterém checkboy máš (mujPanel.Controls).

Nahlásit jako SPAM
IP: 213.191.119.–
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, 237 hostů

Podobná vlákna

Parsování a check kódu — založil Siggi

Teletext do boxu — založil Matěj Andrle

Mazani boxu — založil Hurys

 

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