我有一种方法可以用条件绘制datagridview
的所有单元格。
我在绘制它们之前解析所有表值,因为我必须知道单元格值是什么来决定什么是颜色。
代码就是这个:
private void rowPainting()
{
for (int i = 0; i < dataGridView1.RowCount - 1; i++)
{
for (int j = 1; j < dataGridView1.ColumnCount; j++)
{
try
{
double value= Convert.ToDouble(dataGridView1[j, i].Value);
if ((value> 0) && (value<= 10))
{
dataGridView1[j, i].Style.BackColor = Color.FromArgb(243, 254, 243);
} else if {
dataGridView1[j, i].Style.BackColor = Color.FromArgb(243, 254, 243);
}
}
catch (InvalidCastException)
{
Console.WriteLine("value null");
}
}
}
}
问题是某些单元格为空,当我将单元格对象转换为double时,它会生成
InvalidCastException的
我想为那些生成异常的行着色并继续该程序。 如何对此例外“无所作为”并正常继续该程序?
答案 0 :(得分:0)
尝试以下方法:
double value = 0;
if ( !double.TryParse( dataGridView1[j, i].Value, out value ) )
{
// Do something in here...
}
// Then modify your if statement like so:
if ( ( value > 0 ) && ( value <= 10 ) )
{
}
else if ( value == 0 )
{
}
else
{
}
答案 1 :(得分:0)
if(dataGridView1 [j,i] .Value == null)继续;
double value = Convert.ToDouble(dataGridView1 [j,i] .Value);