c# 选中多个checkbox并判断编号?
有10个checkbox,需要同时选择多项并定位到所有选择的项,能通过把每个checkbox设置一个整数型tag来调用吗?或者用别的办法?...
有10个checkbox,需要同时选择多项并定位到所有选择的项,能通过把每个checkbox设置一个整数型tag来调用吗?或者用别的办法?
展开
3个回答
展开全部
大概有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;
}
展开全部
看你想做成什么样了,那什么性能不性能就不要考虑了,本身就不是很耗时的事儿;
如果说用tag,我有时候也用;
比如说多个控件是动态创建的,那么我会把标识相关的数据放tag里;
然后在事件触发里取sender的tag来做处理
如果说用tag,我有时候也用;
比如说多个控件是动态创建的,那么我会把标识相关的数据放tag里;
然后在事件触发里取sender的tag来做处理
追问
我是刚刚接触c#,还不懂怎么利用tag这个属性 = =|,能否详细讲解一下,谢谢
追答
.....假如控件比作你现实中的一张桌子,不同控件多个桌子;
tag就是桌子上的一颗钉子, 你可以根据需要往钉子上挂上你需要的东西;
具体用法要看你实际需求的;
只是因为tag 是 object的,所以用它要做好注释说明,且如果没必要,或者他不能很好的帮你省事就不要用
另外,在对控件做索引时,尽量不要用字符串的格式来做约定,最好是有引用或者说指针,最准确且方便调试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
弄个checkbox数组,然后用checked判断是否选中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询