大家好?我正在使用Windows应用程序窗体c#,并且在datagridView中有4列,可以说我有3行,就像这样
-------------------------------
|Grade1|Grade2|Average|Remarks|
|------|------|-------|-------|
| 85| 80| 82.5|PASSED |
| 76| 86| 81|PASSED |
| 75| 72| 73.5|FAILED |
-------------------------------
现在我的问题是,如果我单击一个计算按钮,它将计算列“ Grade1”和列“ Grade2”的每一行是有可能的
Grade1 + Grade2 = Average and Average = Average/2
如果低于74,则备注栏会自动显示“ FAILED” 如果高于75,则备注栏会自动显示“通过”
有人有示例代码或链接可以帮助我做到这一点吗?非常感谢!
答案 0 :(得分:2)
您可以通过操作枚举所有行
foreach(DataGridViewRow row in dataGridView.Rows)
您可以通过执行操作获取或设置该特定行中单元格的值
row["column name"].Value
您可以将click事件附加到Button.Click(通过使用.Click += handler
在代码中进行,也可以在设计器中进行)
组装所有这些零件并提出可行的解决方案将是您的工作。祝你好运:)
答案 1 :(得分:0)
private void CalculateButton_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dgvGrades.Rows)
{
if (decimal.TryParse(row.Cells["Grade1"]?.Value?.ToString(), out decimal Grade1)
&& decimal.TryParse(row.Cells["Grade2"]?.Value?.ToString(), out decimal Grade2))
{
var avg = (Grade1 + Grade2) / 2;
row.Cells["Average"].Value = avg;
if (avg < 74)
{
row.Cells["Remarks"].Value = "FAILED";
}
else
{
row.Cells["Remarks"].Value = "PASSED";
}
}
}
}
答案 2 :(得分:0)
我只是将成员添加到正在填充数组或用于填充网格的列表的类中。平均值和通过/失败字段的获取器可以处理逻辑。