C# 对DataGridview中的选定单元格求和时出现问题
我使用此代码对所选单元格求和。它的工作很好,但当用户选择单元格时,其中的字母是抛出异常:)当选择单元格中的字母是不求和时,我该如何确保安全这是我的代码C# 对DataGridview中的选定单元格求和时出现问题,c#,winforms,datagrid,C#,Winforms,Datagrid,我使用此代码对所选单元格求和。它的工作很好,但当用户选择单元格时,其中的字母是抛出异常:)当选择单元格中的字母是不求和时,我该如何确保安全这是我的代码 private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { String filterStatus = DataGridViewAutoFilterColumnHeader
private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
String filterStatus = DataGridViewAutoFilterColumnHeaderCell.GetFilterStatus(dataGridView1);
if (String.IsNullOrEmpty(filterStatus))
{
showAllLabel.Visible = false;
filterStatusLabel.Visible = false;
}
else
{
int result = -1;
Int32.TryParse(filterStatus, out result);
if (result != 0)
{
// it is a number
showAllLabel.Visible = true;
filterStatusLabel.Visible = true;
filterStatusLabel.Text = filterStatus;
}
else
{
// it can be a number yet won't help you with adding
}
}
}
private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
String filterStatus = DataGridViewAutoFilterColumnHeaderCell.GetFilterStatus(dataGridView1);
if (String.IsNullOrEmpty(filterStatus))
{
showAllLabel.Visible = false;
filterStatusLabel.Visible = false;
}
else
{
showAllLabel.Visible = true;
filterStatusLabel.Visible = true;
filterStatusLabel.Text = filterStatus;
}
}
邮政编码。接受更多答案。您应该查看TryParse的返回值,而不是结果(因为零是一个数字!)private void dataGridView1_DataBindingComplete(对象发送方,DataGridViewBindingCompleteEventTarget e){String filterStatus=DataGridViewAutoFilterColumnHeaderCell.GetFilterStatus(dataGridView1);如果(String.IsNullOrEmpty(filterStatus)){showAllLabel.Visible=false;filterStatusLabel.Visible=false;}else{showallabel.Visible=true;filterStatusLabel.Visible=true;filterStatusLabel.Text=filterStatus;}}@Pabuc:Stuart是正确的,如果过滤器状态为
“0”
您的代码跳过它,但0
是一个数字。您应该得到bool isNum=Int32.TryParse(filterStatus,输出结果)
并在您的中使用isNum
,如果是,它将跳过它,但为什么要将0添加到您的总和?x+0=x?是的,在这种情况下它是可以的,但是如果,例如,该代码被重用用于计算平均值
?您在这里没有求和吗?我已经编辑了我的代码,但不确定这是否是您需要的..是的,Pabuc是正确的,y你不是在这里求和。顺便问一下,你在这个答案的最后一次编辑中看到我附加的过滤器示例项目了吗?-->