c# 选中多个checkbox并判断编号?

有10个checkbox,需要同时选择多项并定位到所有选择的项,能通过把每个checkbox设置一个整数型tag来调用吗?或者用别的办法?... 有10个checkbox,需要同时选择多项并定位到所有选择的项,能通过把每个checkbox设置一个整数型tag来调用吗?或者用别的办法? 展开
 我来答
阳光的雷咩咩
推荐于2016-04-06 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7843万
展开全部

大概有3种办法,可靠性和灵活性不一,你要哪种?

  1. 像楼上说的控件数组(性能最好)

  2. 根据控件名来索引(通常需要一定规则的控件名,但一旦改动就比较麻烦)

  3. 根据显示的文字来索引(也要一定的文字,最方便,但文字不允许重复)

追问
非常感谢,要是根据控件名来索引,最好是带数字编号的,并且能够获取这个编号,该怎么做呢
追答
private void button1_Click(object sender, EventArgs e)
{
foreach (var kv in CheckDic(this))
{
MessageBox.Show(string.Format("{0}:{1}", kv.Key, kv.Value));
}
}

//container是容器,通常为Form等
public static Dictionary CheckDic(Control container)
{
Dictionary dic = new Dictionary();
foreach (Control c in container.Controls)
{
if (c is CheckBox)
{
dic.Add(c.Name, (c as CheckBox).Checked);
}
}
return dic;
}
lc316546079
2015-01-08 · TA获得超过273个赞
知道小有建树答主
回答量:682
采纳率:0%
帮助的人:331万
展开全部
看你想做成什么样了,那什么性能不性能就不要考虑了,本身就不是很耗时的事儿;

如果说用tag,我有时候也用;
比如说多个控件是动态创建的,那么我会把标识相关的数据放tag里;
然后在事件触发里取sender的tag来做处理
追问
  • 我是刚刚接触c#,还不懂怎么利用tag这个属性 = =|,能否详细讲解一下,谢谢

追答
.....假如控件比作你现实中的一张桌子,不同控件多个桌子;
tag就是桌子上的一颗钉子, 你可以根据需要往钉子上挂上你需要的东西;

具体用法要看你实际需求的;

只是因为tag 是 object的,所以用它要做好注释说明,且如果没必要,或者他不能很好的帮你省事就不要用

另外,在对控件做索引时,尽量不要用字符串的格式来做约定,最好是有引用或者说指针,最准确且方便调试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7b27965
2015-01-08 · TA获得超过170个赞
知道小有建树答主
回答量:205
采纳率:0%
帮助的人:248万
展开全部
弄个checkbox数组,然后用checked判断是否选中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式