0

DataGridView の列にチェックボックスがあります。現在、チェックボックスがチェックされていないため、例外が発生しました。私はそれを処理する方法がわからないのですか?

 private void uncheckGrid(ref DataGridView dgv, int index)
    {
        try
        {
            foreach (DataGridViewRow row in dgv.Rows)
            {
                DataGridViewCheckBoxCell check = row.Cells[1] as DataGridViewCheckBoxCell;
                if (check.Value != null) // throw an exception here.
                {
                    if ((bool)check.Value)
                    {
                        Int32 intVal = Convert.ToInt32(row.Cells[0].Value);
                        if (intVal == index)
                        {
                            check.Value = false;
                        }
                    }
                }
            }

ありがとう。

4

1 に答える 1

3

DataGridViewCheckBoxCell check = row.Cells[1] as DataGridViewCheckBoxCell;暗黙のキャストです。行セルが実際には ではないため、null が返されている可能性がありますDataGridViewCheckBoxCell

キャストの後に if ステートメントに条件を追加します。

if (check != null && check.Value != null)
{ /* Do stuff here */ }
于 2012-09-19T18:09:32.343 に答える