你给每个专业类的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);
}