Как остановить исключение пустой ссылки при поиске значения флажка datagridview? - PullRequest
2 голосов
/ 21 декабря 2011

Я использую winforms и C #,.

enter image description here

Когда я пытаюсь получить состояние datagridviewcheckbox, если флажок не соответствует действительности, он показывает, что «Null Reference Exception был пойман» в качестве исключения.

Мой код:

foreach (DataGridViewRow fees_row in this.dataGridView2.Rows)
{
    if ((bool) fees_row.Cells[0].Value == true)
    {
    }
}

Ошибка в строке:

if ((bool) fees_row.Cells[0].Value == true)

как установить значение флажка datagridview не ноль.или избежите этого исключения.

Ответы [ 3 ]

5 голосов
/ 21 декабря 2011

Необходимо убедиться, что объект DataGridViewCell не null first , прежде чем пытаться запросить его значение. Вот что вызывает NullReferenceException - вы запрашиваете свойство Value объекта null!

Измените свой код, чтобы он выглядел так:

foreach (DataGridViewRow fees_row in this.dataGridView2.Rows)
{
    var cell = fees_row.Cells[0];
    if (cell != null)
    {
        var value = cell.Value;
        if (value != null && (bool)value == true)
        {
            // Do whatever...
        }
    }
}

Но до того, как кто-то еще оставит язвительный комментарий, обычно нет смысла проверять логическое значение по отношению к литералу true. Все, что вам нужно написать, это if (boolValue)

2 голосов
/ 21 декабря 2011
 if (fees_row.Cells[0].Value != null)
 {
     if ((bool) fees_row.Cells[0].Value == true)
                {
                }
  }
1 голос
/ 27 января 2012
foreach (DataGridViewRow fees_row in this.dataGridView2.Rows)
{
    var cell = fees_row.Cells[0];
    if (cell.value != null)
    {
        var value = cell.Value;
        if (value != null && (bool)value == true)
        {
            // Do whatever...
        }
    }
}
...