2017-02-14 12 views
0

У меня есть метод, который окрашивает все ячейки datagridview с условием.Как управлять InvalidCastException

Я разбираю все значения таблиц перед их рисованием, потому что я должен знать, что значение ячейки определяет, что будет цветом.

Код это один:

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"); 
      } 
     } 
    } 
} 

Проблема заключается в том, что некоторые ячейки равны нулю, и когда я преобразовать объект ячейки в два раза, он генерирует

InvalidCastException

Я хочу покрасить те строки, которые генерируют мне исключение и продолжают программу. Как я могу «ничего не делать» с этим исключением и обычно продолжать программу?

+1

проверка 'dataGridView1 [J, I] .Value' за нуль, прежде чем пытаться преобразовать его и конвертировать только если значение не равно нулю – ASh

ответ

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 
{ 

} 
0

если (dataGridView1 [J, I] .Value == NULL) продолжать;
double value = Convert.ToDouble (dataGridView1 [j, i] .Value);

+0

Он хочет:«Я хочу, чтобы цвет тех строк, которые генерируют мне исключение» – Morgs