c# - Loop through checkbox dynamically to check it is true or not -


i have 37 checkboxes on form. have kept each check box names like: p1 p2 p3 ......... p36 p37. in vb.net use loop through controls doint string control casting , values of checkboxes.

the below vb.net code, use , works.

    dim start integer = 0         dim stradd string = ""         integer = 1 37             const chk string = "p"             dim chkbox checkbox = ctype(per_box.controls(chk & i), checkbox)             if chkbox.checked = true                 if start = 0                     stradd = stradd + "1"                     start = 1                 else                     stradd = stradd + ":1"                 end if             else                 if start = 0                     stradd = stradd + "0"                     start = 1                 else                     stradd = stradd + ":0"                 end if             end if         next 

however, while creating c# application, tried same, not working. can help.

this c# code:

        string chk = "p";         int start = 1;         string str = "";         (int = 1; <= 37; i++)         {             chk = chk + i;             checkbox chkbox = (checkbox)tab_patients.controls[chk + i];             if (chkbox.checked == true)             {                 if (start == 1)                 {                     str = str + "1";                     start = 0;                 }                 else                 {                     str = str + ":1";                 }             }             else             {                 if (start == 1)                 {                     str = str + "0";                     start = 0;                 }                 else                 {                     str = str + ":0";                 }             }         } 

remove line

chk = chk + i; 

because when this, chk becomes chk1 first iteration , access controls through controls array this:

checkbox chkbox = (checkbox)tab_patients.controls[chk + i]; 

you doing this:

checkbox chkbox = (checkbox)tab_patients.controls[chk11]; 

luckily, have chk11, might working first iteration.

now see happens in next iteration,

for next iteration, chk, has value chk1, chk+i i.e. chk12 , again append 1 more in .controls, hence chk value becomes chk122

checkbox chkbox = (checkbox)tab_patients.controls[chk122]; 

which nothing, hence not working. , on

you shouldn't modifying chk value. use inside controls, not assign value it.

also in vb doing this:

if chkbox.checked = true                 if start = 0                     stradd = stradd + "1"                     start = 1                 else                     stradd = stradd + ":1"                 end if 

and in c# doing this:

  if (chkbox.checked == true)             {                 if (start == 1)                 {                     str = str + "1";                     start = 0;                 }                 else                 {                     str = str + ":1";                 }             } 

the 2 logics slighty different. comparing 0 in vb , if true, append 1, in c# comparing 1 , if true append 1


Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -