猿问

您好,求问,关于在C#中的checkbox?

int[] V = new int[20];
for (int i = 1; i <= 5; i++)
{
V[i] = ((CheckBox)("checkBox"+i)).Checked ? 1 : 0;
}
((CheckBox)("checkBox"+i))这个地方出错:无法将string转化为 system
.windows.form.checkbox
怎么办啊!高手求助啊!!!!!!

肥皂起泡泡
浏览 494回答 2
2回答

幕布斯6054654

((CheckBox)("checkBox"+i))这一行你想要做的应该是找到名称为 "checkBox"+i 的CheckBox控件吧,但是字符串是不可以转为CheckBox的,有个方法可以做到,你可以试下:Control[] ctls=Controls.Find("checkBox"+i,false);if (ctls.Length>0){CheckBox chk=(CheckBox)ctls[0];V[i] = chk.Checked ? 1 : 0;}chk就是你想得到的那个CheckBox控件,Find方法的第一个参数为控件名,第二个参数是问要不要在子窗体里找。

皈依舞

您要干嘛?“checkbox”+i和“随便写什么”都是string也就是字符CheckBOx是一个控件,根本不能强制转换。如果你是要保存每一个CheckBox是否被选中,可以遍历控件例如:foreach (Control c in Controls){if (c is CheckBox){V[i] = c.Checked ? 1 : 0;i++;}当然还有其他方法可以实现,这个就要你自己慢慢研究了}
随时随地看视频慕课网APP
我要回答