DataGridView,遍历所有行,但有异常

时间:2012-03-08 18:06:48

标签: c# datagridview cell paint

大家好我需要帮助我想循环通过datagrid视图中的所有单元格,我想检查它周围的所有相邻单元格,所以我需要检查单元格周围的所有方向。 这将是8个方向(上,下,左,右,左上,右上,左下,右下) 如果他们是黑人的邻居,我想画它。他们两个。

所以这就是我现在所得到的:

for (int x = 0; x < yourGridName.Rows.Count; x++)
{
    //Loop through all cells in that row and change its color.
    for (int y = 0; y < yourGridName.Rows[x].Cells.Count; y++)
    {
        if (dataGridView1.Rows[dataGridView1.SelectedRows[x].Index].Cells[y].Value.ToString() != "YES")
         yourGridName.Rows[x].Cells[y].Style.BackColor = 
         System.Drawing.Color.Black;
    }
  }
}

1 个答案:

答案 0 :(得分:3)

我理解你需要知道如何获得X / Y网格单元的所有8个邻居。

如果你在网格单元格[X] [Y]那么8个邻居应该是

grid [X] [Y-1](如果Y-1> = 0)
grid [X] [Y + 1](如果Y + 1&lt; Cells.Count)
网格[X-1] [Y](如果X-1> = 0)
grid [X + 1] [Y](如果X + 1&lt; Rows.Count)
grid [X + 1] [Y + 1](如果Y + 1&lt; Cells.Count&amp;&amp; X + 1&lt; Rows.Count)
网格[X-1] [Y-1](如果Y-1> = 0&amp;&amp; X-1> = 0)