datagridview 计算列成绩之和

本文介绍了一个在DataGridView中实现两列数值相乘并将其结果填充到第三列的方法。通过监听单元格编辑结束事件,该方法能确保数值更新时自动计算总额。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天看到有人问,怎样在DATAGRIDVIEW中计算其中两列的乘积,并赋值给第三列

``` namespace WindowsFormsApp2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private Student student = new Student(); private void Form1_Load(object sender, EventArgs e) { student.Courses.AddRange(new[] { new Course{ Name="数学", Credit=4, Score=92 }, new Course{ Name="语文", Credit=3, Score=80 }, new Course{ Name="英语", Credit=2, Score=98 }, new Course{ Name="物理", Credit=6, Score=70 }, new Course{ Name="化学", Credit=3, Score=89 } }); //绑定数据源 dgvCourses.DataSource = student.Courses; dgvCourses.Columns["Points"].Visible = false; //隐藏计算 } private void dgvColumnsSetup() { dgvCourses.AutoGenerateColumns = false; dgvCourses.Columns.Clear(); DataGridViewTextBoxColumn colCredit = new DataGridViewTextBoxColumn(); colCredit.HeaderText = "学分"; colCredit.DataPropertyName = "Credit"; DataGridViewTextBoxColumn colScore = new DataGridViewTextBoxColumn(); colScore.HeaderText = "成绩"; colScore.DataPropertyName = "Score"; dgvCourses.Columns.AddRange(colCredit, colScore); } private void button1_Click(object sender, EventArgs e) { double gpa = student.CalculateGPA(); textBox1.Text = $"当前GPA:{gpa:F2}"; } } public class Course { public string Name { get; set; } //课程名称 public int Credit { get; set; } //学分 public int Score { get; set; } //成绩 public double Points { get { if (Score >= 90) return 4.0; else if (Score >= 80) return 3.0; else if (Score >= 70) return 2.0; else if (Score >= 60) return 1.0; else return 0.0; } } } public class Student { public List<Course> Courses { get; set; } = new List<Course>(); //计算GPA public double CalculateGPA() { double totalPoints = 0; int totalCredits = 0; foreach (var course in Courses) { totalPoints += course.Points * course.Credit; totalCredits += course.Credit; } return totalCredits == 0 ? 0 : totalPoints / totalCredits; } } }```为什么在datagridview控件中无数据显示
最新发布
03-30
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值