C#复选框控制

书上的一段代码大意是八个复选框最多选3个感觉后面一段else语句完全没必要啊没选还要-1这样不就最多选的个数超过3个了吗求大神解答publicinti=0;private... 书上的一段代码 大意是八个复选框最多选3个 感觉后面一段else语句完全没必要啊 没选还要-1
这样不就最多选的个数超过3个了吗 求大神解答
public int i = 0;
private void checkBox1_CheckChanged(object sender ,EventArgs e)
{
if (checkBox1.Checked == true)
i++;
if(i>3)
{checkBox1.Checked = falase;
MessageBox.show("最多选三项");}
else{i--;}
}
展开
 我来答
handangaoyang
推荐于2016-01-09 · TA获得超过2242个赞
知道大有可为答主
回答量:2633
采纳率:88%
帮助的人:878万
展开全部

有必要的。


如果你想让一个选中的checkbox从选中变成不选中。所以需要有这个else。


但是这个else的位置。从你给出的代码来看,应该是位置错了。应该放在

if (checkBox1.Checked == true)
{
    i++;
    if(i>3)
    {
        checkBox1.Checked = false;
        MessageBox.show("最多选三项");
    }
}
else{i--;}
追问
这个checkchanged函数每次改变勾选/不勾选时都会有作用吗?
追答
是的。
paperkey
2013-12-27 · TA获得超过517个赞
知道小有建树答主
回答量:713
采纳率:0%
帮助的人:189万
展开全部
给你正解。
因为如果没有这个else i--,但用户不停的勾选的时候,i会一直累加,比如累加到10.
这个时候用户把所有的checkBox的勾选状态都点成不勾选状态,这个时候i的值绝对大于3,那么用户在再次点击没选中状态的checkBox时,你上面的这个函数就会判断i>3并拒绝他勾选。
对于用户来说,他会发现,自己一个都没选中,但却都不能勾选。
“你不是说可以选3个的吗?”用户傻傻地问道。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式