Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown

[es] :: .NET :: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown

[ Pregleda: 2473 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Anyschob
Irfan Batu
student
Beograd

Član broj: 258221
Poruke: 12
82.114.66.*



Profil

icon Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown13.05.2010. u 18:09 - pre 169 meseci
Ljudi pomagajte ne znam kako vise da se snadjem vi ste mi zadnja nada. Ovako imam zadatak da napravim program koji na osnovu 5 CheckBox-a i 5 NumericUpDown resavam jednu jednacinu. Fora je u tome da mogu biti chekirana samo 3/5 checkBoxa i da uzimam vrednost od 3/5 Numeric... tako da kada kliknem na button dolazi do izvrsavanja jednacine koja koristi vrednosti iz Numeric... Znaci ako cekiram checkBox2 uzimam vrednost iz NumericUpDown2 ,ili chkBox3 onda iz Num3. Nadam se da ste me razumeli.
Moj pokusaj je bio da chkBox i Num.. predstavim kao niz i nasao sam par sajtova na netu ali nikako ne mogu da izvalim kako od vec postavljenih chkBox napravim niz. Ako su vam od ikakve pomoci evo par sajtova http://msdn.microsoft.com/en-us/library/aa289500(VS.71).aspx i http://www.devasp.net/net/articles/display/674.html

Nisam bas iskusan u ovome,pocetnik sam, tako da bi mi bilo kakva pomoc dobro dosla. Hvala unapred!
 
Odgovor na temu

Sapphire
Denis Biondić
.NET software developer
Nürnberg, Germany

Član broj: 213086
Poruke: 290
62.113.3.*



+6 Profil

icon Re: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown13.05.2010. u 18:25 - pre 169 meseci
Najjednostavnije za tebe - pokušaj ovako:

1. za svaki checkbox napraviš dvoklikom event handler u kojem menjaš Enabled property numeric kontrola, prema tome da li je checkbox selektovan, ili ne.
2. Stavi neku int varijablu, postavi je na nulu, i na svako očitano selektovanje povećaj za jedan, i obrnuto kada pročitaš da checkbox nije selektovan. U slučaju da je taj broj veći od 3, izbaci poruku da ne mogu biti više od tri selektovana.
3. stavi u tome button-u seriju if uslova za svaki checkbox pojedinačno, koji bude selektovan (checkiran) ti zapamti podatke (e sad, kako, to je do zadatka? ). Ako radiš možda koeficijente jednačine 4-og stepena (znači, imaš , onda kreiraj niz od 5 elemenata, i postavi ih na nule. Kako za koji checkbox nađeš da je selektovan, taj koeficijent stavi na tu poziciju niza (koeficijent očitan iz numeric kontrole).

Rješavanje ove prethodne formule slobodno uradi iteracijom kroz niz, ako je neki koeficijent nula - nikom ništa - neće ti ući u račun.



My programs don’t have bugs, they just develop random features.
 
Odgovor na temu

Anyschob
Irfan Batu
student
Beograd

Član broj: 258221
Poruke: 12
82.114.66.*



Profil

icon Re: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown13.05.2010. u 18:33 - pre 169 meseci
mislio sam to da izbegnem sa nekom for petljom i predstavljanjem ovih kontrola ko nizove ako me razumes ... jer recimo da imam veci broj checkBox onda bi mi bilo previse kucakanja. Ali u svakom slucaju hvala puno na brzom odgovoru
 
Odgovor na temu

Sapphire
Denis Biondić
.NET software developer
Nürnberg, Germany

Član broj: 213086
Poruke: 290
62.113.3.*



+6 Profil

icon Re: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown13.05.2010. u 20:30 - pre 169 meseci
Eh, da sam malo bolje čitao, skontao bi da je tebi broj tih kontrola varijabilan, zar ne?

Kako da rješiš tu dinamičnost u programu, ti odluči. Možeš dinamički kreirati te parove kontrola, imaš i layout container kontrole preko kojih možeš pozicionirati elemente kako treba. Možeš staviti Checkbox-eve i NumericUpDown kontrole nekako u DataGridView, pa da to izgleda i malo bolje (jbg, nemam ideje šta tačno pokušavaš).

Sad oko te petlje, i niza - ja bih to rješio nekim objektim pristupom, vjerovatno bi napravio klasu koja sadrži checkbox i numeric, te dodana važna polja, kao recimo stepen ili šta ti već treba. Napravio bi i user kontrolu koja ima metode za recimo prikaz novog "para" na ekran, i ostalo. Ta bi user kontrola čuvala objekte koje sadrže te kontrole u nekoj listi, i mogla bi se pozvati neka metoda koja prebacuje te vrijednosti u drugi niz pogodan dijelu koda koji računa tu formulu.

Kao što sam rekao, ne znam na šta tačno ciljaš, nadam se da barem neka od ideja pomaže ...

P.S. Kontrole možeš čuvati i u internim Controls listama koje svaki objekat nasljeđen od Control klase ima (znači, doslovce sve kontrole Windows Forms-a).

My programs don’t have bugs, they just develop random features.
 
Odgovor na temu

Anyschob
Irfan Batu
student
Beograd

Član broj: 258221
Poruke: 12
82.114.66.*



Profil

icon Re: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown14.05.2010. u 16:30 - pre 169 meseci
iskreno nije varijabila radi se 16 boxova ali samo 11 mogu biti cekirane ali ja i pored ovih primera ne znam kako to da izvedem ... mada nesto mi je palo na pamet tipa da stavim ovako nesto

checkBox chk = new checkBox [];

i da na taj nacin preko for petlje uvrsitm vec postojece checkBox-ove (one koje sam postavio na formi)u niz,pa naravim novu for petlju kojom bi ih ispitao. Ali ocigledno nesto gresim, ne znam pokusaco to da resim nekako samo sto trenutno nemam vremena. Kad resim izbacicu cod cisto da vidim kako ti se svidja i da li bi ti ili neko drugi tu nesto menjao.
 
Odgovor na temu

lonelyrider_44
Zrenjanin

Član broj: 42310
Poruke: 445
109.94.104.*



+20 Profil

icon Re: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown14.05.2010. u 17:48 - pre 169 meseci
Code (csharp):

private void formLoad(object sender, EventArgs e)
{
   CheckBox[] nizChkBoxova = new CheckBox[16];

   //instanciranje, podeshavanje i ostalo
   for(int i =0;i<16;i++){
      nizChkBoxova[i] = new CheckBox();
      nizChkBoxova[i].Top = 30*i;
      nizChkBoxova[i].Left = 10;
      nizChkBoxova[i].Checked = false;
   }
   //i na kraju, dodavanje niza u listu kontrola forme
   this.Controls.AddRange(nizChkBoxova);
}
 


i isto tako za numericUpDown. Mislim da je ovo najjednostavniji nachin, s'tim da bih ja umesto niza koristio listu, jer njoj ne morash da kazesh unapred koliko ce imati elemenata.
Interesantno bi bilo mozda i da napravish svoju klasu koja ce imati strukturu kolekcije, znachi da nasledi interfejs IList, ICollection ili shta je vec potrebno da mozesh da je prosledish metodi AddRange, pa da njoj dodash metodu ili property koja ce voditi rachuna o max broju chekiranih kontrola itd,pa kad je prekorachen taj broj da baci exception ili event koji cesh handlovati, ili jednostavno da se neki drugi chekbox uncheck-ira. Mislim, moglo bi da se tu svashta iskomplikuje, ali radi i sa obichnim nizom. Ako hocesh malo da vezbash onda mozesh tako da malo na ovom primeru zakomplikujesh.
 
Odgovor na temu

Anyschob
Irfan Batu
student
Beograd

Član broj: 258221
Poruke: 12
82.114.66.*



Profil

icon Re: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown14.05.2010. u 18:59 - pre 169 meseci
Citat:
lonelyrider_44
Code (csharp):

private void formLoad(object sender, EventArgs e)
{
   CheckBox[] nizChkBoxova = new CheckBox[16];

   //instanciranje, podeshavanje i ostalo
   for(int i =0;i<16;i++){
      nizChkBoxova[i] = new CheckBox();
      nizChkBoxova[i].Top = 30*i;
      nizChkBoxova[i].Left = 10;
      nizChkBoxova[i].Checked = false;
   }
   //i na kraju, dodavanje niza u listu kontrola forme
   this.Controls.AddRange(nizChkBoxova);
}
 


i isto tako za numericUpDown. Mislim da je ovo najjednostavniji nachin, s'tim da bih ja umesto niza koristio listu, jer njoj ne morash da kazesh unapred koliko ce imati elemenata.
Interesantno bi bilo mozda i da napravish svoju klasu koja ce imati strukturu kolekcije, znachi da nasledi interfejs IList, ICollection ili shta je vec potrebno da mozesh da je prosledish metodi AddRange, pa da njoj dodash metodu ili property koja ce voditi rachuna o max broju chekiranih kontrola itd,pa kad je prekorachen taj broj da baci exception ili event koji cesh handlovati, ili jednostavno da se neki drugi chekbox uncheck-ira. Mislim, moglo bi da se tu svashta iskomplikuje, ali radi i sa obichnim nizom. Ako hocesh malo da vezbash onda mozesh tako da malo na ovom primeru zakomplikujesh.


ok ovaj kod sto si mi dao mi ustvari stvara nove dugmice na formi jel da ili ja mozda gresim (oprosti mi ako je pitanje nubovsko)? Jer ja bih zeleo za recimo vec postavljena dugmad na formi znaci vec sam postavi checkBox1,checkBox2 da mi od njih napravi niz koji bi kasnije koristio za proveru. Ako nisam u pravu ja stvarno ne uvidjam nesto ocigledno posto mi je profa dao nesto slicno ovom tvom sto si postavio(imas gore postavljena dva linka cak i link da sam kreiram klasu).
Ja sam mislio to da odradim otprilike ovako pa mi reci gde gresim:


Code:

 CheckBox[] nizChkBoxova = new CheckBox[16];

for(int i =0;i<16;i++){
    if  nizChkBoxova[i] = true then
pa naredbe
   }

da li to moze ovako ? pretpostavljam da je ovo glupo i da mi ocigledno treba da jos procitam o CSharpu ali trenutno sam kratak sa vremenom.
 
Odgovor na temu

Anyschob
Irfan Batu
student
Beograd

Član broj: 258221
Poruke: 12
82.114.66.*



Profil

icon Re: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown14.05.2010. u 19:17 - pre 169 meseci
ok evo nesto sam gledao ,znaci ti mi kazes da napravim nova dugmad koja mi se po podizanju aplikacije postavljaju na navedena mesta i to uradim i za num... pa onda uz pomoc njih resavam problem jel da?
 
Odgovor na temu

Sapphire
Denis Biondić
.NET software developer
Nürnberg, Germany

Član broj: 213086
Poruke: 290
62.113.2.*



+6 Profil

icon Re: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown14.05.2010. u 19:37 - pre 169 meseci
Gledaj - ne moraš ih i dinamički kreirati ako ne želiš - možeš ih dohvatiti jednostavno kroz Controls kolekciju forme na kojoj se nalaze. Idi nešto kao:

Code (c):


IList<CheckBox> checkBoxList = new List<CheckBox>();

foreach (Control control in Controls)
{
     CheckBox checkBox = control as CheckBox;

     if (checkBox != null && checkBox.Checked)
          checkBoxList.Add(checkBox);
}

 


Ako imaš i nekih dodatnih checkbox-ova na formi koji ne bi trebali ući u ove, onda tih 16 stavi u posebni Panel, pa idi kroz Controls kolekciju tog panela.

Što se tiče rješavanja tog zadatka, jbg, ja još uvijek mislim da je najbolje za to uvesti ili novu klasu, ili novu kolekciju, ili nešto kako god - jer problem ti je recimo da znaš koji je koji CheckBox i sl. To možeš preko naziva recimo, ali opet ... to nije pravo rješenje. Probaj iskoristiti Tag property kontrole, stavi recimo broj checkbox-a tu, pa da barem znaš koje box-eve imaš ...


My programs don’t have bugs, they just develop random features.
 
Odgovor na temu

Anyschob
Irfan Batu
student
Beograd

Član broj: 258221
Poruke: 12
82.114.66.*



Profil

icon Re: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown14.05.2010. u 19:48 - pre 169 meseci
hvala oboici puno sada mislim da sam blizu resenja ! JAvljam cim zavrsim :D
 
Odgovor na temu

lonelyrider_44
Zrenjanin

Član broj: 42310
Poruke: 445
109.94.104.*



+20 Profil

icon Re: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown14.05.2010. u 20:57 - pre 169 meseci
Vidi, ako cesh ti na formi imati samo 5 ili 16 parova checkBox/numericUpDown (nebitno koliko, dokle god je to fixan broj) onda nema potrebe za dinamichkim kreiranjem poput onog koji sam ti okachio u prethodnom postu. Ako je tebi jedini cilj da ti checkBox-ovi budu u jednom nizu, a numericUpDown u drugom, onda to moze i mnogo jednostavnije.
Recimo:
Code (csharp):

CheckBox[] chkNiz = new CheckBox[5];
NumericUpDown[] nudNiz = new NumericUpDown[5];
private void initArrays()
{
    chkNiz[0] = checkBox1;
    chkNiz[1] = checkBox2;
// ...

   nudNiz[0] = numericUpDown1;
// ...

}
 


I onda kasnije manipulishi kontrolama preko ovih nizova. Znachi ovo ti je najjednostavniji nachin. Drugi ti je ponudio Sapphire, u kolekciji Controls se nalaze sve kontrole koje su na formi pa mozesh da prodjesh kroz tu listu i uzmesh one kontrole koje su tipa CheckBox i NumericUpDown.

@Sapphire
Zashto si stavio IList<CheckBox> umesto List<CheckBox> kod deklaracije checkBoxList ? Da li postoji razlika izmedju deklaracije kao IList ili List ?
 
Odgovor na temu

Sapphire
Denis Biondić
.NET software developer
Nürnberg, Germany

Član broj: 213086
Poruke: 290
62.113.2.*



+6 Profil

icon Re: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown14.05.2010. u 21:24 - pre 169 meseci
Citat:
lonelyrider_44:
@Sapphire
Zashto si stavio IList<CheckBox> umesto List<CheckBox> kod deklaracije checkBoxList ? Da li postoji razlika izmedju deklaracije kao IList ili List ?


Navika ... Kodiranje prema interface-u, a ne prema implementaciji - jedan od osnovnih OOP principa, i TDD-a generalno.
My programs don’t have bugs, they just develop random features.
 
Odgovor na temu

Anyschob
Irfan Batu
student
Beograd

Član broj: 258221
Poruke: 12
82.114.66.*



Profil

icon Re: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown15.05.2010. u 20:59 - pre 169 meseci
ovako izveo sam ovo sa preko nove klase iskoristio sam ove vase primere da bih prikazao checkBoxove . medjutim kada hocu da ih prikazem u dve kolone ne mogu da ih prikazem preko chkBox.top i .left .zna li se zasto valjda ove dve opcije mi omugucavaju sve da prikazem u odnosu na gornju id donju ivicu?
 
Odgovor na temu

Anyschob
Irfan Batu
student
Beograd

Član broj: 258221
Poruke: 12
82.114.66.*



Profil

icon Re: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown15.05.2010. u 21:21 - pre 169 meseci
donju greska levu sorry :(
 
Odgovor na temu

lonelyrider_44
Zrenjanin

Član broj: 42310
Poruke: 445
109.94.104.*



+20 Profil

icon Re: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown15.05.2010. u 22:52 - pre 169 meseci
Ne razumem gde je problem. Ako hocesh da budu u dve kolone, oni checkBox-ovi koji ce biti u prvoj koloni imace property Left postavljen na 50 (recimo) a za drugu kolonu Left = 200

Okachi kod pa ce biti lakshe.
 
Odgovor na temu

Anyschob
Irfan Batu
student
Beograd

Član broj: 258221
Poruke: 12
82.114.66.*



Profil

icon Re: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown16.05.2010. u 00:13 - pre 169 meseci
Vidis i ja sam to mislio ali desava se to da mi druga kolana ide ispod prve pomerena od leve ivice za recimo100.evo ti primer:

Code:


private void Form1_Load(object sender, EventArgs e)
        {
            
            for (int i = 1; i < 9; i++)
            {
                MyControlArray.AddNewChkBox();
                MyControlArray[i].Top = 20 * i;
                MyControlArray[i].Left = 30;
            }

            for (int j = 1; j < 9; j++)
            {
                MyControlArray.AddNewChkBox();
                MyControlArray[j].Top = 20 * j;
                MyControlArray[j].Left = 100;

            }

            }



e sad pokusao sam sa if naredbom u prvoj for petlji (znaci bez ove druge petlje) da mi posle 9 ispisuje na .left=100 medjutim isti ishod uz male izmene . pokusao sam i sa MyControlArray.AddNewChkBox().Top ili .Left isto ... onda probao sam sa System.Drawing.Point() i sa CheckAlign sve su bile male razlike ili mi ne prikazuje sve chkBoxove ili ih kao po randumu rasporedi ili prvi chkBox uvek stoji na samom cosku dok su svi udaljeni jedni od drugih. E sad ne znam u cemu gresim jer valjda se to u odnosu na top i left...
ako zelis mogu ti poslati i kod od klase mada u njoj sam bio definisao gde trebaju dugmici da mi se nalaze pa sam posle i to izbrisao mislio sam da to nije prob. ali opet isto...
 
Odgovor na temu

Anyschob
Irfan Batu
student
Beograd

Član broj: 258221
Poruke: 12
82.114.66.*



Profil

icon Re: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown16.05.2010. u 00:50 - pre 169 meseci
evo i sa "if" kako sam pokusao:

Code:

 for (int Index = 1; Index < 18; Index++)
            {
                if (Index > 9)
                {
                    MyControlArray.AddNewChkBox();
                    MyControlArray[Index].Top = 20 * Index;
                    MyControlArray[Index].Left = 200;                    
                }
                else
                {
                    MyControlArray.AddNewChkBox();
                    MyControlArray[Index].Top = 20 * Index;
                    MyControlArray[Index].Left = 25;
                    
                }
            }
 
Odgovor na temu

lonelyrider_44
Zrenjanin

Član broj: 42310
Poruke: 445
*.com
Via: [es] mailing liste



+20 Profil

icon Re: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown16.05.2010. u 08:53 - pre 169 meseci
Code (csharp):

private void Form1_Load(object sender, EventArgs e)
        {
             for (int i = 1; i < 9; i++)
            {
                MyControlArray.AddNewChkBox();
                MyControlArray/.Top = 20 * i;
                MyControlArray/.Left = 30;
            }

            for (int j = 1; j < 9; j++)
            {
                MyControlArray.AddNewChkBox();
                MyControlArray[j].Top = 20 * j;
                MyControlArray[j].Left = 100;

            }

            }
 


Ovde ti ne valja to shto u drugoj for petlji podeshavash Top i Left
vrednosti za prvih 9 chkBox-ova, umesto za drugih (j index ti ide od 1 do
8, umesto od 9 do 17 - to je druga kolona). Znachi mozda ovako da si
uradio:

Code (csharp):

  for (int i = 0; i < 9; i++)
            {
                MyControlArray.AddNewChkBox();
                MyControlArray/.Top = 20 * i+20;
                MyControlArray/.Left = 30;
            }

            for (int j = 0; j < 9; j++)
            {
                MyControlArray.AddNewChkBox();
                MyControlArray[j+9].Top = 20 * j;
                MyControlArray[j+9].Left = 100;

            }

 



Code:

for (int Index = 1; Index < 18; Index++)
            {
                if (Index > 9)
                {
                    MyControlArray.AddNewChkBox();
                    MyControlArray[Index].Top = 20 * Index;
                    MyControlArray[Index].Left 200;                                   }
                else
                {
                    MyControlArray.AddNewChkBox();
                    MyControlArray[Index].Top = 20 * Index;
                    MyControlArray[Index].Left = 25;
                 }
            }


Ovde si se zeznuo u tome shto u if klauzuli(ako je tacan uslov, da je
Index > 9) stavio si da je .Top = 20 * Index . Trebalo bi da, ako si
povecao Left, tj. preshao u drugu kolonu, Top opet mnozish 20 sa 1,2,... a
ne sa 10,10,... znachi recimo ovako: .Top = 20*(Index%9);

Evo kako sam ja uradio sa izuzetkom shto nisam koristio posebnu klasu.
[code:csharp]

private void button1_Click(object sender, EventArgs e)
{
CheckBox[] myCheckBoxArray = new CheckBox[18];
for (int i = 0; i < 18; i++)
{
myCheckBoxArray[i] = new CheckBox();
myCheckBoxArray[i].Width = 30;
myCheckBoxArray[i].Left = (i / 9) * 70 + 30;
myCheckBoxArray[i].Top = (i % 9) * 20 + 20;
}
this.Controls.AddRange(myCheckBoxArray);
}
[code]

Proveri znachi indexe i vrednosti koje dobijash za Top kada mnozish
20*Index. Mislim da ti je tu jedina greshka.

--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
 
Odgovor na temu

Anyschob
Irfan Batu
student
Beograd

Član broj: 258221
Poruke: 12
82.114.66.*



Profil

icon Re: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown16.05.2010. u 10:00 - pre 169 meseci
upravo tako greska mi je bila bas to sada kada sam postavio % prikazuje kako treba.
 
Odgovor na temu

Anyschob
Irfan Batu
student
Beograd

Član broj: 258221
Poruke: 12
82.114.66.*



Profil

icon Re: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown17.05.2010. u 17:54 - pre 169 meseci
Momci evo sta sam do sada uradio cisto da ne ispadne da nisam hteo da podelim sa vama obecao sam da cu da postavim i evo linka [url]http://rapidshare.com/files/388429374/klase.rar.html[/url] znaci to bi trebao da ispadne ko neki simple football manager . Ima jos tu da se radi jos mnogo toga da se definise ali ovo je gruba verzija, u kojoj se zahvaljujem vama i naravno profi
 
Odgovor na temu

[es] :: .NET :: Pomoc oko CSharp problem sa vise checkBox-va i NumericUpDown

[ Pregleda: 2473 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.