【发布时间】:2015-02-27 15:39:01
【问题描述】:
- 我在 C# Datagridview 中有这个案例。
我想计算3件平均值,在上面显示的文本框上,只要检查复选框。
我在下面使用这个逻辑:
private void button1_Click(object sender, EventArgs e)
{
DataGridView data = this.qualitySetupDataGridView;
try
{
int count = 0;
double Sum = 0;
for (int k = 0; k < data.Rows.Count - 1; k++)
{
if (data.Rows[k].Cells[5].Value != null)
{
if (Convert.ToBoolean(data.Rows[k].Cells[5].Value) == true)
{
double EndsPerInch = double.Parse(data.Rows[k].Cells[4].Value.ToString());
Sum = Sum + EndsPerInch;
count++;
double Average = Sum / count;
textBox1.Text = Convert.ToString(Math.Round(Average, 2));
}
}
else
{
textBox1.Clear();
}
}
- 代码运行正常。
- 但第一次选择单个复选框时,我收到 Invalid Cast Exception 错误。
- 当第二个复选框被选中时,我再次收到 Invalid Cast Exception Error。
- 当第三个复选框被选中时,我没有收到 Invalid Cast Exception 错误。
然后程序按预期运行。
这里的问题是为什么一开始就弹出invalid cast exception错误?。
有没有更好的方法来实现这一点?
【问题讨论】:
-
显然这将有助于 a) 查看 DGV 的相关代码和 b) 了解哪一行给出了无效的强制转换异常
标签: c# checkbox datagridview