c# winfrom程序控制checkbox最多选中个数,回答后追加10分
public Form1()
{
InitializeComponent();
if (panel1.HasChildren)
{
foreach (Control item in panel1.Controls)
{
CheckBox cb = item as CheckBox;
if (cb != null)
{
cb.CheckedChanged += new EventHandler(cb_CheckedChanged);
}
}
}
}
//选中的个数
public static int number = 0;
private void cb_CheckedChanged(object sender, EventArgs e)
{
CheckBox cb = (CheckBox)sender;
if (cb.Checked)
{
number += 1;
}
else
{
number -= 1;
}
if (number > 3)
{
MessageBox.Show("最多只能选中三个");
cb.Checked = false;
}
}
int count=0;
foreach(Control c in this.controls){
if(c is checkbox && c.checked==true)
//累加
}
判断count即可,在每次checkbox的状态改变时判断。
请不要复制粘贴,c后面的.checked你个我点个出来试试
这不是复制粘贴,我现在没有编译器,只能给你思路,请不要误解
当选中一checkbox时,checkCount++;
当取消选中时checkbox--;
每次选中一个checkbox前检查checkCount是否>=3,是的话就不再选中