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
Post a Comment