如何在C#中实现将选中的checkbox代表的数字相加?

实现勾选任意选项,右边自动计学分总和,取消选择也自动减,这样的功能... 实现勾选任意选项,右边自动计学分总和,取消选择也自动减,这样的功能 展开
 我来答
我零0七
2017-06-12 · 热衷人生的有效性,关注自我
我零0七
采纳数:684 获赞数:11738

向TA提问 私信TA
展开全部

你给每个专业类的checkbox命名时加上Pro

每个通识类的checkbook命名时加上Nor

你设置每一个checkBox.Tag=它对应的分数

然后给每一个checkBox.CheckedChanged+=CheckBox.CheckedChanged;

在private void CheckBox_CheckedChanged(object sender, EventArgs e)方法中写

var checkBox=sender as CheckBox;
var grade=Convert.ToInt32(checkBox.Tag);
if(checkbox.Name.Contains("Pro"))
{
    var proGrade=Convert.ToInt32(lablePro.Text);
    lablePro.Text=checkBox.Checked?(proGrade+grade):(proGrade-grade);
}
else  if(checkbox.Name.Contains("Nor"))
{
     var norGrade=Convert.ToInt32(lableNor.Text);
    lableNor.Text=checkBox.Checked?(norGrade+grade):(norGrade-grade);
}
更多追问追答
追问

请问CheckBox.CheckedChanged 事件在哪里?按照Pro和Nor的命名,只有十个有前缀的类似ProcheckBox1这样的事件。

追答
上面弄错了,这样才对
checkBox.CheckedChanged+=CheckBox_CheckedChanged;
这句话你要写在Form1_Load事件里面,而且要写10次,就是给每一个checkBox都写
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式